diff options
author | Rutger Broekhoff | 2024-01-02 18:56:31 +0100 |
---|---|---|
committer | Rutger Broekhoff | 2024-01-02 18:56:31 +0100 |
commit | 8db41da676ac8368ef7c2549d56239a5ff5eedde (patch) | |
tree | 09c427fd66de2ec1ebffc8342f5fdbb84b0701b5 /vendor/github.com/golang-jwt/jwt/v5/rsa_utils.go | |
parent | d4f75fb6db22e57577867445a022227e70958931 (diff) | |
download | gitolfs3-8db41da676ac8368ef7c2549d56239a5ff5eedde.tar.gz gitolfs3-8db41da676ac8368ef7c2549d56239a5ff5eedde.zip |
Delete vendor directory
Diffstat (limited to 'vendor/github.com/golang-jwt/jwt/v5/rsa_utils.go')
-rw-r--r-- | vendor/github.com/golang-jwt/jwt/v5/rsa_utils.go | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/vendor/github.com/golang-jwt/jwt/v5/rsa_utils.go b/vendor/github.com/golang-jwt/jwt/v5/rsa_utils.go deleted file mode 100644 index b3aeebb..0000000 --- a/vendor/github.com/golang-jwt/jwt/v5/rsa_utils.go +++ /dev/null | |||
@@ -1,107 +0,0 @@ | |||
1 | package jwt | ||
2 | |||
3 | import ( | ||
4 | "crypto/rsa" | ||
5 | "crypto/x509" | ||
6 | "encoding/pem" | ||
7 | "errors" | ||
8 | ) | ||
9 | |||
10 | var ( | ||
11 | ErrKeyMustBePEMEncoded = errors.New("invalid key: Key must be a PEM encoded PKCS1 or PKCS8 key") | ||
12 | ErrNotRSAPrivateKey = errors.New("key is not a valid RSA private key") | ||
13 | ErrNotRSAPublicKey = errors.New("key is not a valid RSA public key") | ||
14 | ) | ||
15 | |||
16 | // ParseRSAPrivateKeyFromPEM parses a PEM encoded PKCS1 or PKCS8 private key | ||
17 | func ParseRSAPrivateKeyFromPEM(key []byte) (*rsa.PrivateKey, error) { | ||
18 | var err error | ||
19 | |||
20 | // Parse PEM block | ||
21 | var block *pem.Block | ||
22 | if block, _ = pem.Decode(key); block == nil { | ||
23 | return nil, ErrKeyMustBePEMEncoded | ||
24 | } | ||
25 | |||
26 | var parsedKey interface{} | ||
27 | if parsedKey, err = x509.ParsePKCS1PrivateKey(block.Bytes); err != nil { | ||
28 | if parsedKey, err = x509.ParsePKCS8PrivateKey(block.Bytes); err != nil { | ||
29 | return nil, err | ||
30 | } | ||
31 | } | ||
32 | |||
33 | var pkey *rsa.PrivateKey | ||
34 | var ok bool | ||
35 | if pkey, ok = parsedKey.(*rsa.PrivateKey); !ok { | ||
36 | return nil, ErrNotRSAPrivateKey | ||
37 | } | ||
38 | |||
39 | return pkey, nil | ||
40 | } | ||
41 | |||
42 | // ParseRSAPrivateKeyFromPEMWithPassword parses a PEM encoded PKCS1 or PKCS8 private key protected with password | ||
43 | // | ||
44 | // Deprecated: This function is deprecated and should not be used anymore. It uses the deprecated x509.DecryptPEMBlock | ||
45 | // function, which was deprecated since RFC 1423 is regarded insecure by design. Unfortunately, there is no alternative | ||
46 | // in the Go standard library for now. See https://github.com/golang/go/issues/8860. | ||
47 | func ParseRSAPrivateKeyFromPEMWithPassword(key []byte, password string) (*rsa.PrivateKey, error) { | ||
48 | var err error | ||
49 | |||
50 | // Parse PEM block | ||
51 | var block *pem.Block | ||
52 | if block, _ = pem.Decode(key); block == nil { | ||
53 | return nil, ErrKeyMustBePEMEncoded | ||
54 | } | ||
55 | |||
56 | var parsedKey interface{} | ||
57 | |||
58 | var blockDecrypted []byte | ||
59 | if blockDecrypted, err = x509.DecryptPEMBlock(block, []byte(password)); err != nil { | ||
60 | return nil, err | ||
61 | } | ||
62 | |||
63 | if parsedKey, err = x509.ParsePKCS1PrivateKey(blockDecrypted); err != nil { | ||
64 | if parsedKey, err = x509.ParsePKCS8PrivateKey(blockDecrypted); err != nil { | ||
65 | return nil, err | ||
66 | } | ||
67 | } | ||
68 | |||
69 | var pkey *rsa.PrivateKey | ||
70 | var ok bool | ||
71 | if pkey, ok = parsedKey.(*rsa.PrivateKey); !ok { | ||
72 | return nil, ErrNotRSAPrivateKey | ||
73 | } | ||
74 | |||
75 | return pkey, nil | ||
76 | } | ||
77 | |||
78 | // ParseRSAPublicKeyFromPEM parses a certificate or a PEM encoded PKCS1 or PKIX public key | ||
79 | func ParseRSAPublicKeyFromPEM(key []byte) (*rsa.PublicKey, error) { | ||
80 | var err error | ||
81 | |||
82 | // Parse PEM block | ||
83 | var block *pem.Block | ||
84 | if block, _ = pem.Decode(key); block == nil { | ||
85 | return nil, ErrKeyMustBePEMEncoded | ||
86 | } | ||
87 | |||
88 | // Parse the key | ||
89 | var parsedKey interface{} | ||
90 | if parsedKey, err = x509.ParsePKIXPublicKey(block.Bytes); err != nil { | ||
91 | if cert, err := x509.ParseCertificate(block.Bytes); err == nil { | ||
92 | parsedKey = cert.PublicKey | ||
93 | } else { | ||
94 | if parsedKey, err = x509.ParsePKCS1PublicKey(block.Bytes); err != nil { | ||
95 | return nil, err | ||
96 | } | ||
97 | } | ||
98 | } | ||
99 | |||
100 | var pkey *rsa.PublicKey | ||
101 | var ok bool | ||
102 | if pkey, ok = parsedKey.(*rsa.PublicKey); !ok { | ||
103 | return nil, ErrNotRSAPublicKey | ||
104 | } | ||
105 | |||
106 | return pkey, nil | ||
107 | } | ||