Skip to content

Instantly share code, notes, and snippets.

@Loupax
Created July 4, 2022 10:24
Show Gist options
  • Save Loupax/a536734edcbff99a3690a524f2d4713e to your computer and use it in GitHub Desktop.
Save Loupax/a536734edcbff99a3690a524f2d4713e to your computer and use it in GitHub Desktop.
package jwt_test
func parsePrivatePEM(pemString string) *rsa.PrivateKey {
block, _ := pem.Decode([]byte(pemString))
key, _ := x509.ParsePKCS1PrivateKey(block.Bytes)
return key
}
func parsePublicPEM(pemString string) *rsa.PublicKey {
block, _ := pem.Decode([]byte(pemString))
key, _ := x509.ParsePKCS1PublicKey(block.Bytes)
return key
}
func generateDummyToken(kid string, claimsJSON jwtgo.MapClaims) *jwtgo.Token {
t := jwtgo.NewWithClaims(jwtgo.SigningMethodRS256, claimsJSON)
t.Header["kid"] = kid
return t
}
func generateSignedToken(kid string, claimsJSON jwtgo.MapClaims) string {
s, _ := generateDummyToken(kid, claimsJSON).SignedString(parsePrivatePEM(PRIVATE))
return s
}
func getJWKs(key *rsa.PrivateKey) *jose.JSONWebKeySet {
jwks := new(jose.JSONWebKeySet)
jwks.Keys = append(jwks.Keys, jose.JSONWebKey{
Key: &key.PublicKey,
KeyID: "key-id",
Algorithm: "RSA",
Use: "sig",
})
return jwks
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment