summaryrefslogtreecommitdiff
path: root/vendor/github.com/golang-jwt/jwt/signing_method.go
diff options
context:
space:
mode:
authorLibravatar kim (grufwub) <grufwub@gmail.com>2021-09-08 20:20:06 +0100
committerLibravatar kim (grufwub) <grufwub@gmail.com>2021-09-08 20:20:06 +0100
commitfce3ba63825f563b2ddb24fcf44847eef3547b5b (patch)
tree941aca5281a32f2c7a1587d303e6440cc44141c1 /vendor/github.com/golang-jwt/jwt/signing_method.go
parentrework media processing a little bit (#191) (diff)
downloadgotosocial-fce3ba63825f563b2ddb24fcf44847eef3547b5b.tar.xz
update oauth library -> v4.3.1-SSB
Signed-off-by: kim (grufwub) <grufwub@gmail.com>
Diffstat (limited to 'vendor/github.com/golang-jwt/jwt/signing_method.go')
-rw-r--r--vendor/github.com/golang-jwt/jwt/signing_method.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/vendor/github.com/golang-jwt/jwt/signing_method.go b/vendor/github.com/golang-jwt/jwt/signing_method.go
new file mode 100644
index 000000000..ed1f212b2
--- /dev/null
+++ b/vendor/github.com/golang-jwt/jwt/signing_method.go
@@ -0,0 +1,35 @@
+package jwt
+
+import (
+ "sync"
+)
+
+var signingMethods = map[string]func() SigningMethod{}
+var signingMethodLock = new(sync.RWMutex)
+
+// Implement SigningMethod to add new methods for signing or verifying tokens.
+type SigningMethod interface {
+ Verify(signingString, signature string, key interface{}) error // Returns nil if signature is valid
+ Sign(signingString string, key interface{}) (string, error) // Returns encoded signature or error
+ Alg() string // returns the alg identifier for this method (example: 'HS256')
+}
+
+// Register the "alg" name and a factory function for signing method.
+// This is typically done during init() in the method's implementation
+func RegisterSigningMethod(alg string, f func() SigningMethod) {
+ signingMethodLock.Lock()
+ defer signingMethodLock.Unlock()
+
+ signingMethods[alg] = f
+}
+
+// Get a signing method from an "alg" string
+func GetSigningMethod(alg string) (method SigningMethod) {
+ signingMethodLock.RLock()
+ defer signingMethodLock.RUnlock()
+
+ if methodF, ok := signingMethods[alg]; ok {
+ method = methodF()
+ }
+ return
+}