mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 09:52:26 -05:00 
			
		
		
		
	Grand test fixup (#138)
* start fixing up tests * fix up tests + automate with drone * fiddle with linting * messing about with drone.yml * some more fiddling * hmmm * add cache * add vendor directory * verbose * ci updates * update some little things * update sig
This commit is contained in:
		
					parent
					
						
							
								329a5e8144
							
						
					
				
			
			
				commit
				
					
						98263a7de6
					
				
			
		
					 2677 changed files with 1090869 additions and 219 deletions
				
			
		
							
								
								
									
										67
									
								
								vendor/github.com/dgrijalva/jwt-go/ecdsa_utils.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								vendor/github.com/dgrijalva/jwt-go/ecdsa_utils.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,67 @@ | |||
| package jwt | ||||
| 
 | ||||
| import ( | ||||
| 	"crypto/ecdsa" | ||||
| 	"crypto/x509" | ||||
| 	"encoding/pem" | ||||
| 	"errors" | ||||
| ) | ||||
| 
 | ||||
| var ( | ||||
| 	ErrNotECPublicKey  = errors.New("Key is not a valid ECDSA public key") | ||||
| 	ErrNotECPrivateKey = errors.New("Key is not a valid ECDSA private key") | ||||
| ) | ||||
| 
 | ||||
| // Parse PEM encoded Elliptic Curve Private Key Structure | ||||
| func ParseECPrivateKeyFromPEM(key []byte) (*ecdsa.PrivateKey, error) { | ||||
| 	var err error | ||||
| 
 | ||||
| 	// Parse PEM block | ||||
| 	var block *pem.Block | ||||
| 	if block, _ = pem.Decode(key); block == nil { | ||||
| 		return nil, ErrKeyMustBePEMEncoded | ||||
| 	} | ||||
| 
 | ||||
| 	// Parse the key | ||||
| 	var parsedKey interface{} | ||||
| 	if parsedKey, err = x509.ParseECPrivateKey(block.Bytes); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	var pkey *ecdsa.PrivateKey | ||||
| 	var ok bool | ||||
| 	if pkey, ok = parsedKey.(*ecdsa.PrivateKey); !ok { | ||||
| 		return nil, ErrNotECPrivateKey | ||||
| 	} | ||||
| 
 | ||||
| 	return pkey, nil | ||||
| } | ||||
| 
 | ||||
| // Parse PEM encoded PKCS1 or PKCS8 public key | ||||
| func ParseECPublicKeyFromPEM(key []byte) (*ecdsa.PublicKey, error) { | ||||
| 	var err error | ||||
| 
 | ||||
| 	// Parse PEM block | ||||
| 	var block *pem.Block | ||||
| 	if block, _ = pem.Decode(key); block == nil { | ||||
| 		return nil, ErrKeyMustBePEMEncoded | ||||
| 	} | ||||
| 
 | ||||
| 	// Parse the key | ||||
| 	var parsedKey interface{} | ||||
| 	if parsedKey, err = x509.ParsePKIXPublicKey(block.Bytes); err != nil { | ||||
| 		if cert, err := x509.ParseCertificate(block.Bytes); err == nil { | ||||
| 			parsedKey = cert.PublicKey | ||||
| 		} else { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	var pkey *ecdsa.PublicKey | ||||
| 	var ok bool | ||||
| 	if pkey, ok = parsedKey.(*ecdsa.PublicKey); !ok { | ||||
| 		return nil, ErrNotECPublicKey | ||||
| 	} | ||||
| 
 | ||||
| 	return pkey, nil | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue