Skip to content

Commit

Permalink
feat: New compose strategies for ES256
Browse files Browse the repository at this point in the history
  • Loading branch information
mitar committed Jun 25, 2020
1 parent 901e206 commit 3280e77
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions compose/compose_strategy.go
Expand Up @@ -22,6 +22,7 @@
package compose

import (
"crypto/ecdsa"
"crypto/rsa"

"github.com/ory/fosite/handler/oauth2"
Expand Down Expand Up @@ -58,6 +59,15 @@ func NewOAuth2JWTStrategy(key *rsa.PrivateKey, strategy *oauth2.HMACSHAStrategy)
}
}

func NewOAuth2JWTECDSAStrategy(key *ecdsa.PrivateKey, strategy *oauth2.HMACSHAStrategy) *oauth2.DefaultJWTStrategy {
return &oauth2.DefaultJWTStrategy{
JWTStrategy: &jwt.ES256JWTStrategy{
PrivateKey: key,
},
HMACSHAStrategy: strategy,
}
}

func NewOAuth2JWTStrategyWithIssuer(key *rsa.PrivateKey, strategy *oauth2.HMACSHAStrategy, issuer string) *oauth2.DefaultJWTStrategy {
return &oauth2.DefaultJWTStrategy{
JWTStrategy: &jwt.RS256JWTStrategy{
Expand All @@ -68,6 +78,16 @@ func NewOAuth2JWTStrategyWithIssuer(key *rsa.PrivateKey, strategy *oauth2.HMACSH
}
}

func NewOAuth2JWTECDSAStrategyWithIssuer(key *ecdsa.PrivateKey, strategy *oauth2.HMACSHAStrategy, issuer string) *oauth2.DefaultJWTStrategy {
return &oauth2.DefaultJWTStrategy{
JWTStrategy: &jwt.ES256JWTStrategy{
PrivateKey: key,
},
HMACSHAStrategy: strategy,
Issuer: issuer,
}
}

func NewOpenIDConnectStrategy(config *Config, key *rsa.PrivateKey) *openid.DefaultStrategy {
return &openid.DefaultStrategy{
JWTStrategy: &jwt.RS256JWTStrategy{
Expand All @@ -77,3 +97,13 @@ func NewOpenIDConnectStrategy(config *Config, key *rsa.PrivateKey) *openid.Defau
Issuer: config.IDTokenIssuer,
}
}

func NewOpenIDConnectECDSAStrategy(config *Config, key *ecdsa.PrivateKey) *openid.DefaultStrategy {
return &openid.DefaultStrategy{
JWTStrategy: &jwt.ES256JWTStrategy{
PrivateKey: key,
},
Expiry: config.GetIDTokenLifespan(),
Issuer: config.IDTokenIssuer,
}
}

0 comments on commit 3280e77

Please sign in to comment.