Merge pull request #183 from hnakamur/support_rs256_in_jwt_command

Support RS256 algorithm in jwt command
This commit is contained in:
Dave Grijalva 2017-02-01 14:58:49 -08:00 committed by GitHub
commit 2268707a8f
2 changed files with 17 additions and 2 deletions

View File

@ -6,8 +6,8 @@ the command line.
The following will create and sign a token, then verify it and output the original claims:
echo {\"foo\":\"bar\"} | bin/jwt -key test/sample_key -alg RS256 -sign - | bin/jwt -key test/sample_key.pub -verify -
echo {\"foo\":\"bar\"} | ./jwt -key ../../test/sample_key -alg RS256 -sign - | ./jwt -key ../../test/sample_key.pub -alg RS256 -verify -
To simply display a token, use:
echo $JWT | jwt -show -
echo $JWT | ./jwt -show -

View File

@ -134,6 +134,8 @@ func verifyToken() error {
}
if isEs() {
return jwt.ParseECPublicKeyFromPEM(data)
} else if isRs() {
return jwt.ParseRSAPublicKeyFromPEM(data)
}
return data, nil
})
@ -218,6 +220,15 @@ func signToken() error {
return err
}
}
} else if isRs() {
if k, ok := key.([]byte); !ok {
return fmt.Errorf("Couldn't convert key data to key")
} else {
key, err = jwt.ParseRSAPrivateKeyFromPEM(k)
if err != nil {
return err
}
}
}
if out, err := token.SignedString(key); err == nil {
@ -265,3 +276,7 @@ func showToken() error {
func isEs() bool {
return strings.HasPrefix(*flagAlg, "ES")
}
func isRs() bool {
return strings.HasPrefix(*flagAlg, "RS")
}