Subject: [PATCH go-team 5/6] gnu: Add go-github-com-go-webauthn.

From: Rodion Goritskov <[email-masked]>
Date: Wed, 1 May 2024 00:42:45 +0400

* gnu/packages/golang-web.scm (go-github-com-go-webauthn-x): New variable.
* gnu/packages/golang-web.scm (go-github-com-go-webauthn-webauthn-protocol): New variable.
* gnu/packages/golang-web.scm (go-github-com-go-webauthn-webauthn-metadata): New variable
* gnu/packages/golang-web.scm (go-github-com-go-webauthn-webauthn-webauthn): New variable.

Change-Id: Ife3cb2d50e0481fafc207ca819711b85d50d0c13
---
 gnu/packages/golang-web.scm | 125 ++++++++++++++++++++++++++++++++++++
 1 file changed, 125 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 4f2c6f8c1a..500242ee98 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -964,6 +964,131 @@ (define-public go-github-com-gregjones-httpcache
 shared proxy).")
       (license license:expat))))
 
+(define-public go-github-com-go-webauthn-x
+  (package
+    (name "go-github-com-go-webauthn-x")
+    (version "0.1.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/go-webauthn/x")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1lxxd2xhb5iappn4w49z5ahin4xfn3rj04vkdzzipyvwfzlix2al"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:unpack-path "github.com/go-webauthn/x"
+      #:import-path "github.com/go-webauthn/x/revoke"))
+    (propagated-inputs (list go-golang-org-x-crypto))
+    (home-page "https://github.com/go-webauthn/x")
+    (synopsis "Low level packages for Webauthn")
+    (description "Low level packages for Go Webauthn library.")
+    (license license:bsd-3)))
+
+(define-public go-github-com-go-webauthn-webauthn-protocol
+  (package
+    (name "go-github-com-go-webauthn-webauthn-protocol")
+    (version "0.10.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/go-webauthn/webauthn")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1jbx3cd8cr4aaqq9s1x4sd1rlcs3lmam5aavpl08s5rj18m7rivf"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:go go-1.18
+      ;; Tests are using external network address
+      #:tests? #f
+      #:unpack-path "github.com/go-webauthn/webauthn"
+      #:import-path "github.com/go-webauthn/webauthn/protocol"))
+    (native-inputs (list go-github-com-stretchr-testify))
+    (propagated-inputs (list go-golang-org-x-crypto
+                             go-github-com-mitchellh-mapstructure
+                             go-github-com-google-uuid
+                             go-github-com-google-go-tpm-tpmutil
+                             go-github-com-google-go-tpm-legacy-tpm2
+                             go-github-com-golang-jwt-jwt-v5
+                             go-github-com-go-webauthn-x
+                             go-github-com-fxamacker-cbor-v2))
+    (home-page "https://github.com/go-webauthn/webauthn")
+    (synopsis "WebAuthn Library")
+    (description
+     "This library is meant to handle @@url{https://www.w3.org/TR/webauthn,Web
+Authentication} for Go apps that wish to implement a passwordless solution for
+users.  This library conforms as much as possible to the guidelines and
+implementation procedures outlined by the document.")
+    (license license:bsd-3)))
+
+(define-public go-github-com-go-webauthn-webauthn-metadata
+  (package
+    (inherit go-github-com-go-webauthn-webauthn-protocol)
+    (name "go-github-com-go-webauthn-webauthn-metadata")
+    (version "0.10.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/go-webauthn/webauthn")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1jbx3cd8cr4aaqq9s1x4sd1rlcs3lmam5aavpl08s5rj18m7rivf"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:go go-1.18
+      ;; Tests are using external network address
+      #:tests? #f
+      #:unpack-path "github.com/go-webauthn/webauthn"
+      #:import-path "github.com/go-webauthn/webauthn/metadata"))
+    (propagated-inputs (list go-golang-org-x-crypto
+                             go-github-com-mitchellh-mapstructure
+                             go-github-com-google-uuid
+                             go-github-com-google-go-tpm-tpmutil
+                             go-github-com-google-go-tpm-legacy-tpm2
+                             go-github-com-golang-jwt-jwt-v5
+                             go-github-com-go-webauthn-x
+                             go-github-com-fxamacker-cbor-v2))
+    (native-inputs (list go-github-com-stretchr-testify))))
+
+(define-public go-github-com-go-webauthn-webauthn-webauthn
+  (package
+    (inherit go-github-com-go-webauthn-webauthn-protocol)
+    (name "go-github-com-go-webauthn-webauthn-webauthn")
+    (version "0.10.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/go-webauthn/webauthn")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1jbx3cd8cr4aaqq9s1x4sd1rlcs3lmam5aavpl08s5rj18m7rivf"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:go go-1.18
+      #:unpack-path "github.com/go-webauthn/webauthn"
+      #:import-path "github.com/go-webauthn/webauthn/webauthn"))
+    (propagated-inputs (list go-golang-org-x-crypto
+                             go-github-com-mitchellh-mapstructure
+                             go-github-com-google-uuid
+                             go-github-com-google-go-tpm-tpmutil
+                             go-github-com-google-go-tpm-legacy-tpm2
+                             go-github-com-golang-jwt-jwt-v5
+                             go-github-com-go-webauthn-x
+                             go-github-com-fxamacker-cbor-v2))
+    (native-inputs (list go-github-com-stretchr-testify))))
+
 (define-public go-github-com-hjson-hjson-go
   (package
     (name "go-github-com-hjson-hjson-go")
-- 
2.41.0