2016-04-10 12 views
0

にES256で署名されたSHA-2 ES256プライベートキーと楕円曲線デジタル署名(ECDSA)で署名。エラーIはJWTをauthentifyingの作業Javaコードを移植AWSラムダ関数

次の例外が、私はそれを正しく理解すれば、基本的なランタイム・プラットフォームは、ES256をサポートしていないことを示唆しています。

AWSラムダは、最近のJava 8のオープンJDK上で動作し、私は暗号がプリインストールさだと思ったので、私は驚いています。

私には何が欠けていますか?これはJOSE4Jのバグ

ですか? AWSラムダインフラストラクチャの限界?

Caused by: org.jose4j.lang.UnresolvableKeyException: Unable to find a suitable verification key for JWS w/ header {"kid":"staging_0","alg":"ES256"} due to an unexpected exception (org.jose4j.lang.InvalidAlgorithmException: ES256 is an unknown, unsupported or unavailable alg algorithm (not one of [none, HS256, HS384, HS512, RS256, RS384, RS512]).) selecting from keys: [org.jose4j.jwk.EllipticCurveJsonWebKey{kty=EC, kid=staging_0, x=jz84fmrLuG5T9cnT-ydQdGjqk2iX2PsVYIcABTkXiqc, y=6oGYrjWEjhUSea5q7izitbcp5o7QlkArnm49OA0cPlI, crv=P-256}, org.jose4j.jwk.EllipticCurveJsonWebKey{kty=EC, kid=prod_0, x=cd5u73HnAueI1mgjuk9JSvU0ekonRCafffwaG-_D5VM, y=QjOMm1fqw3Aevkzzd-RVmlcmGMwPS9uajFN4nLnTwFc, crv=P-256}] 
at org.jose4j.keys.resolvers.JwksVerificationKeyResolver.resolveKey(JwksVerificationKeyResolver.java:54) 
at org.jose4j.jwt.consumer.JwtConsumer.processContext(JwtConsumer.java:190) 
... 6 more 
Caused by: org.jose4j.lang.InvalidAlgorithmException: ES256 is an unknown, unsupported or unavailable alg algorithm (not one of [none, HS256, HS384, HS512, RS256, RS384, RS512]). 
at org.jose4j.jwa.AlgorithmFactory.getAlgorithm(AlgorithmFactory.java:51) 
at org.jose4j.jws.JsonWebSignature.getAlgorithm(JsonWebSignature.java:142) 
at org.jose4j.jws.JsonWebSignature.getAlgorithm(JsonWebSignature.java:35) 
at org.jose4j.jwk.SelectorSupport.commonFilterForInbound(SelectorSupport.java:49) 
at org.jose4j.jwk.VerificationJwkSelector.selectList(VerificationJwkSelector.java:39) 
at org.jose4j.jwk.VerificationJwkSelector.select(VerificationJwkSelector.java:33) 
at org.jose4j.keys.resolvers.JwksVerificationKeyResolver.resolveKey(JwksVerificationKeyResolver.java:47) 
... 7 more 

答えて

0

jose4jそれはAlgorithmFactory(s)は、基本的に第1の使用上、それは様々なアルゴリズムの利用可能性を決定するために、そのJCAプロバイダと、基礎となるJVMに問い合わせしようとします初期化します。特にES256ため、Signature.getInstance("SHA256withECDSA")はnullを返したり、何か他のものは、右のSignatureインスタンスを取得行かなかった - 例外メッセージは、ECDSAアルゴリズムは、プラットフォームから利用できなかったことを示唆しています。 AWS LambdaのJavaではECDSAが利用できないようです。

関連する問題