问题标签 [jose4j]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - iOS JWE AES GCM 256
我正在尝试使用 JOSESwift(修改为支持 AES-GCM 256)和 CryptoSwift(需要支持 iOS 11+)在 Swift 中实现 JWE 令牌。我能够使用公钥/私钥对进行加密和解密。但是,当相同的 JWE 令牌传递给 Java(服务器端程序)时,它无法解密。反之亦然也不起作用。需要帮助,可以分享我的github项目
https://github.com/sreekanthps/VAMDemoJava.git - Java 项目https://github.com/sreekanthps/VMADemo.git - iOS 项目https://github.com/sreekanthps/JOSESwift-AES256GCM.git - 修改后的 JOSESwift项目
雨云
线程“主”com.nimbusds.jose.JOSEException 中的异常:AES/GCM/NoPadding 解密失败:标签不匹配!在 com.nimbusds.jose.crypto.impl.AESGCM.decrypt(AESGCM.java:301) 在 com.nimbusds.jose.crypto.impl.ContentCryptoProvider.decrypt(ContentCryptoProvider.java:279) 在 com.nimbusds.jose.crypto .RSADecrypter.decrypt(RSADecrypter.java:285) 在 com.nimbusds.jose.JWEObject.decrypt(JWEObject.java:415) 在 me.txedo.security.Main.numbusJWe(Main.java:127) 在 me.txedo。安全.Main.main(Main.java:52)
何塞4j
线程“主”org.jose4j.lang.JoseException 中的异常:javax.crypto.AEADBadTagException:标签不匹配!在 org.jose4j.jwe.SimpleAeadCipher.decrypt(SimpleAeadCipher.java:114) 在 org.jose4j.jwe.SimpleAeadCipher.decrypt(SimpleAeadCipher.java:101) 在 org.jose4j.jwe.AesGcmContentEncryptionAlgorithm.decrypt(AesGcmContentEncryptionAlgorithm.java:79) ) 在 org.jose4j.jwe.JsonWebEncryption.decrypt(JsonWebEncryption.java:249) 在 org.jose4j.jwe.JsonWebEncryption.getPlaintextBytes(JsonWebEncryption.java:85) 在 org.jose4j.jwe.JsonWebEncryption.getPlaintextString(JsonWebEncryption.java: 78) 在 org.jose4j.jwe.JsonWebEncryption.getPayload(JsonWebEncryption.java:93) 在 me.txedo.security.Main.jose4JDeryption(Main.java:166) 在 me.txedo.security.Main.main(Main.java :55)
SWIFT代码
Java 代码
java - 如何验证 JWT 正文中的自定义密钥对值
我正在实施 JWT 解决方案,并且正在使用 jose4j。我面临的问题是我要验证的 JWT 正文中有非标准/自定义密钥对值(例如“application-id”:124123),但我找不到方法在 Jose4J 中进行。我不介意举个例子。
rsa - 如何使用 RSA 作为 kty jwk 参数(使用 jose4j)
我正在使用jose4j
JWE 加密字符串,遵循此文档https://bitbucket.org/b_c/jose4j/wiki/JWE%20Examples
在示例中,他们使用{\"kty\":\"oct\",\"k\":\"Fdh9u8rINxfivbrianbbVT1u232VQBZYKx1HGAGPt2I\"}
它运作良好,但如何使用 RSA 作为 kty ?我应该自己生成一个密钥并将其放入“k”参数中吗?
java - 意外的“InvalidJwtSignatureException:JWT 由于签名无效而被拒绝”
我有一个看起来像这样的 JWT(我不得不隐藏一些值):
或者简单地说:
和
这是我为验证它而编写的代码(从网站中的示例开始)。
我的目标是目前仅验证签名而不验证其他密钥对值。
但是,当我运行代码时,我得到:
而“->”右侧的token确实是我的token。
所以我怀疑我没有正确设置 JWTConsumer,但我看不到错误在哪里。
工作解决方案:
}
java - 使用 Jose4J 将 JWT 的主体提取为 JSON
我想使用 Jose4j 将 JWT 的主体提取为 JSON。这可能吗?
我们需要支持自定义验证,该验证可以任意简单或非常复杂,具体取决于客户。我们需要 JSON 形式的主体,以便我们可以将其作为参数传递给客户特定的 Javascript 方法。
jwe - 如何从 JSON 网络密钥生成 jose4j EllipticCurveJsonWebKey
我可以按照https://bitbucket.org/b_c/jose4j/wiki/JWT%20Examples创建 JWE 。 问题:无法使用 json web 密钥创建 JWE(如下所述的 EC 类型)。
要求:创建并验证以下类型的 JWE
我想避免EcJwkGenerator.generateJwk(EllipticCurves.P256);
我可以从 json 网络密钥创建 EllipticCurveJsonWebKey 吗?
这是 json 网络密钥:
jose4j - 有没有办法告诉 Jose4J 不要生成和发送 IV,而是使用底层加密提供者返回的 IV?
我们计划使用 Jose4J 与合作伙伴生成和交换 JWE。我们的密钥和证书在 HSM(Luna 7.4 Network HSM)中得到保护。我们看到 Jose4J 生成一个 IV(初始化向量)并将其发送到底层加密提供者。但是,对于以 FIPS 模式部署的 HSM,HSM 会拒绝调用者发送的任何 IV,并因参数无效错误而失败。在 FIPS 模式下,IV 在 HSM 内生成并作为响应发回。有关更多信息,请参见此处 - https://thalesdocs.com/gphsm/luna/7.4/docs/network/Content/sdk/mechanisms/CKM_AES_GCM.htm
我的问题 - 有没有办法告诉 Jose4J 不要生成和发送 IV,而是使用 HSM 返回的 IV?
非常感谢,湿婆
jwt - jose4j,用对称密钥解密 JWE
我正在尝试从jwt.io开始重现 JWE 的解码作为示例,并使用库jose4j转换为代码
从网站 jwt.io 我有以下内容:
标题:
有效载荷:
验证签名:
秘密 base64 未编码。
现在我尝试使用 jose4j 重现这种情况,然后在编码字段上具有相同的值,即:
然后:
但是我收到此错误:
org.jose4j.lang.InvalidAlgorithmException:HS256 是未知的、不受支持或不可用的算法(不是 [RSA1_5、RSA-OAEP、RSA-OAEP-256、dir、A128KW、A192KW、A256KW、ECDH-ES、ECDH-ES +A128KW、ECDH-ES+A192KW、ECDH-ES+A256KW、PBES2-HS256+A128KW、PBES2-HS384+A192KW、PBES2-HS512+A256KW、A128GCMKW、A192GCMKW、A256GCMKW])。
javascript - JWT.io 签名验证
我正在 Mirth 中创建一个 JWT 并将构造的消息发送到 oauth2 服务器,但它一直出错。当我将 JWT 放入 jwt.io 时,我得到了有效的标头和有效负载信息,但我的签名返回为无效,我不知道为什么。
我使用以下命令使用 openssl 创建了签名:
在 Mirth 中,我对 privatekey.pem 文件进行编码
当我检查发送的内容并将编码的 JWT 粘贴到 jwt.io 时,我得到无效的签名。我不确定我在哪里或做错了什么。
JWT.io 签名错误:
java - 可以将 OctetSequenceJsonWebKey 转换为 EllipticCurveJsonWebKey
我的客户有一个使用 kty=oct 存储的 JWK 私钥,现在我们想将其转换为 EC 密钥,但我们不知道如何操作?我们拥有的相应公钥存储在 kty=EC 中。不知道为什么。
我们正在使用 Java 8 和 jose4j 库。但是愿意尝试其他库或工具。
有任何想法吗?