问题标签 [jose]
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.
jose - 错误:导入“pem”密钥时没有密钥导入程序
该应用程序遵循node-jose 2.0.0
导入.pem
密钥的说明。这是文档:
密钥已经使用.pem
表单生成,其内容存储在 nodejs 配置文件中,如下所示process.env.josePrivateKey
:
这是将密钥添加pem
到密钥库的代码:
但是有一个错误:
密钥导入这里缺少什么?
jose - jose 中有什么工具可以将密钥从 PEM 转换为 Ed25519 的 JWK?
Ed25519PEM
密钥对生成如下:
在jose 3.11.1
中parseJwk
,接受JWK
输入,用于生成用于签名和验证的密钥。jose
将PEM
密钥转换为在第三方实用程序中JWK
使用paseseJwk
或与第三方实用程序一起使用是否有实用程序?我没有找到一个nodejs
项目。
jwt - Ed25519 的算法值?
RFC7518 有一个JWT 中使用的算法值列表。但是 没有任何价值EdDSA
,例如Ed25519
。在Ed25519
Jose 中验证时也不接受作为有效值。什么是正确的 alg 值Ed25519
?
json - 有没有办法使用 .Net 框架创建加密的 JWT,以替代使用 jose-jwt 之类的库?
我有一个 ASP.Net 应用程序,我正在使用这个库:https ://github.com/dvsekhvalnov/jose-jwt创建一个加密的 JWT,如下所示:
publicKey只是我从公共 JWK 创建的 RSA 密钥。
我想知道是否有一种方法可以通过使用普通的 .Net Framework 而不是这个库来生成相同格式的加密 JWT。我尝试使用Microsoft.IdentityModel.Tokens和System.IdentityModel.Tokens命名空间,例如:
但是我意识到这个方法的输出与 jose-jwt 库的Encode方法产生的输出格式不同。我是否遗漏了什么,或者这不是在.Net 中创建相同加密 JWT 的方法?
当我尝试使用相同的jose-jwt库来解密上面生成的 JWT 时,而不是获取解密的有效负载(“some_text_to_encrypt”),我得到另一个 JWT,其有效负载中的值:
Result after decrypting: eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJ2YWwiOiJzb21lX3RleHRfdG9fZW5jcnlwdCIsIm5iZiI6MTYxODkzNjk0NywiZXhwIjoxNjE4OTQwNTQyLCJpYXQiOjE2MTg5MzY5NDIsImlzcyI6Iklzc3VlciIsImF1ZCI6IkF1ZGllbmNlIn0.
然后我可以在jwt.io中解码以获得以下结果:
标题:{“alg”:“none”,“typ”:“JWT”}有效负载:{“val”:“some_text_to_encrypt”,“nbf”:1618936947,“exp”:1618940542,“iat”:1618936942,“iss ": "发行者", "aud": "受众" }
node.js - 如何使用 node-jose 加密 json 对象?
我正在尝试使用库 node-jose 将加密的用户对象发送到我的客户端。我真的不明白它是如何工作的。该文档从不谈论如何加密数据对象。
基本上,如何做这样的事情:
然后,在我的 React 应用程序中,我应该能够破译它。谢谢你的帮助!
python - jws.sign 不适用于算法 RS256
我正在尝试使用 jws.sign 对 JSON 编码对象进行签名,因此尝试了此处给出的示例: https ://python-jose.readthedocs.io/en/latest/jws/index.html
但问题是 jws.sign 在上面示例中给出的算法 HS256 上运行良好,但在算法 RS256 上失败并出现以下错误:
signed = jws.sign({'a': 'b'}, 'secret', algorithm='RS256') Traceback(最近一次调用最后):文件“/usr/local/lib/python3.7/dist-packages /jose/backends/cryptography_backend.py”,第 231 行,在init中 self.prepared_key = load_pem_public_key(key, self.cryptography_backend()) 文件“/usr/local/lib/python3.7/dist-packages/cryptography/hazmat/primitives/serialization/base.py”,第 23 行,在 load_pem_public_key 返回backend.load_pem_public_key(data) 文件“/usr/local/lib/python3.7/dist-packages/cryptography/hazmat/backends/openssl/backend.py”,第 1273 行,在 load_pem_public_key self._handle_key_loading_error() 文件“/usr /local/lib/python3.7/dist-packages/cryptography/hazmat/backends/openssl/backend.py”,第 1526 行,在 _handle_key_loading_error 中引发 ValueError(“无法反序列化密钥数据。”) ValueError:无法反序列化密钥数据.
任何线索都会有所帮助
javascript - ECDSA 的微妙加密:无法使用指定的密钥用法创建密钥
我想在 Chrome 中导入 ECDSA 私钥来签署一些数据,但尝试使用crypto.subtle.importKey
:importKey
使用secp256k1
.
尝试使用 lib 时,我遇到了以下错误:
Cannot create a key using the specified key usages.
编码:
仔细检查了我的私钥,得到了Uint8Array(32)
似乎通常可以使用importKey
.
任何帮助表示赞赏。
node.js - 使用 jose 创建 JWK 和 JWS,但是出现错误“不支持的算法”
我必须使用 ES256 算法加密有效载荷。还必须在 JWK 中使用 child,如下面的代码所述。我正在使用 jose 库来创建签名。下面是代码:
但我收到错误:
不支持的算法。
请让我知道为什么会出现这个问题。
java - 如何在 Spring Boot 中使用加密的有效负载
我尝试使用以下方法处理它:
我收到以下错误:
org.springframework.web.HttpMediaTypeNotSupportedException:不支持内容类型'application/jose;charset=UTF-8'
node.js - Nodejs使用公钥字符串构造公钥
我有一个如下的公钥字符串 let pk_str = "public key strig here" 并且我正在使用该库jose
来验证 JWS
尝试运行脚本时出现以下错误
有没有办法构造密钥?