问题标签 [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.

0 投票
0 回答
1795 浏览

c# - 在 .NET Core 3.1 中使用 EC (ECDH_ES_A256KW, A256GCM) 进行 JWE 加密/解密

我在 C# 中使用“jose-jwt”库。我能够在 .NET 4.8 中为 RSA(RSA_OAEP_256、A256GCM)和 EC(ECDH_ES_A256KW、A256GCM)提供 JWE 加密/解密。请参阅下面的示例代码。

但是对于 .NET Core 3.1,只有 RSA (RSA_OAEP_256, A256GCM) 有效。“jose-jwt”库不支持 .NET Core 中的 EC(ECDH_ES_A256KW、A256GCM)。

是否可以在 .NET Core 3.1 中使用 EC(ECDH_ES_A256KW、A256GCM)?如果是这样,我应该使用哪个库?我查看了 Microsoft 库,但似乎也不支持 EC (ECDH_ES_A256KW, A256GCM)。

注意:我正在尝试使用 JWE 加密字符串,而不是使用 JWT 加密声明列表有效负载。

0 投票
1 回答
3597 浏览

c# - 如何使用公钥 RSA_OAEP_256 加密 JWT 有效负载

我正在使用“BouncyCastle.NetCore”和“jose-jwt”库来签署和加密网络令牌。我可以通过以下代码使用我的私钥签名。但要求还执行 OpenID JWT 加密 为了加密 JWT 有效负载,我们需要使用提供的公钥字符串(使用 X509 密钥规范进行 base64 解码)来执行此操作。使用 RSA 算法和 JWE 标头所需的编码应包括标头名称“alg”,其值为:RSA_OAEP_256。下面的代码仅使用私钥签名,但不确定如何完成编码?

0 投票
1 回答
531 浏览

delphi - 使用 Delphi JOSE 和 JWT 库,如何使用 RS256 签署 JWT

他们所有的示例都使用 HS*** 而 RS*** 中没有,并且尝试将示例更改为套件似乎不起作用。

我的问题似乎是加载私钥以进行签名。我在字符串中使用 PEM,设置声明,使用这个

这在签名方法中失败,说“无法加载私钥:”和一堆奇怪的字符,这使得看起来我应该有一个 ansistring 时可能有一个宽字符串,但改变它似乎没有帮助。

我还尝试使用 TBase64.Decode 和 TBase64.UrlDecode 在将密钥传递给 sign 方法之前对其进行转换,但没有成功。

谁能看到我在哪里犯了错误?

0 投票
1 回答
1048 浏览

node.js - 在 golang 中解密 JWE 令牌

我有这个问题,我通过这种方式使用node-jose在 node.js 中创建了一个 JWE:

根据创建它的文档"alg": "PBES2-HS256+A128KW", "enc": "A128CBC-HS256",,如果我在 jwt.io 中检查它,它就是。

然后,我需要在 golang 中解密,所以我喜欢使用go-jose.v2

但它会恐慌“恐慌:square/go-jose:密码原语中的错误”您可以在此处查看:https: //play.golang.org/p/qB3QNtGwBsK

我已经尝试过https://github.com/lestrrat-go/jwx但是它不支持 PBES2-HS256+A128KW 算法

谢谢。

更新:这里有更多信息:

他们在节点中的键是用这个创建的:

然后输出保存在这个数组中:

我一直在尝试在 golang 中使用相同的 JWK 创建相同的 JWE,我可以在 golang 中解密,但在节点中都没有(我收到“找不到密钥”错误)......所以,交叉解密对我不起作用. 我究竟做错了什么?

0 投票
0 回答
551 浏览

python - 解码 jwt AuthError: ({'code': 'invalid_header', 'description': 'Unable to parse authentication token.'}, 400)

我正在尝试设置 auth0,但遇到了问题。我可以得到我的令牌,当我去 jwt.io 时它会正确解码它,但我不能用 python 解码它。当我尝试时,我得到了这个错误

我可以使用以下代码获取令牌:

但我无法使用以下代码对其进行解码:

这里出了什么问题?

0 投票
1 回答
1200 浏览

python - 如何在 python 中验证来自 AzureAD 的 JWT?

我已经使用 AzureAD 设置了授权服务器。为了测试它,我目前正在应用一个隐式流并获取一个令牌和 id_token 我使用https://oidcdebugger.com/

现在我想弄清楚如何正确验证资源服务器端的令牌。我总是得到一个jose.exceptions.JWTError: Signature verification failed. 你能帮我找出我做错了什么吗?我对 JWT 验证真的很陌生,可能在某个地方存在一些明显的错误。

正如 OIDC 元数据端点所定义的, https://login.microsoftonline.com/{tenant_id}/v2.0/.well-known/openid-configuration用于签名验证的密钥可以在 https://login.microsoftonline.com/{tenant_id}/discovery/v2.0/keys. 该端点上的密钥 ID 与kid我的令牌标头中的值匹配。所以,我很肯定这些是我的钥匙。它们看起来像这样:

这篇文章的答案中,密钥是使用手工构建的cryptography.x509。我尝试了同样的方法,但我必须更改一些细节才能使其运行。我正在.encode输入字符串,我必须将一个可迭代对象传递给decode函数。

0 投票
1 回答
1397 浏览

c# - 如何使用 JWK 为 ES256 alg 验证 JWT?

我有 JWT

然后我得到了一个公钥:

我正在尝试使用 C# 中的 Jose 库进行解码

每次我得到一个错误:

EcdsaUsingSha 算法要求密钥为 CngKey 或 ECDsa 类型。

我假设我使用密钥的方式不正确,但我找不到任何将 json 密钥转换为 pem 或任何有效的方法。

0 投票
0 回答
125 浏览

ruby-on-rails - 如何在 Ruby 中实现 JWS (RFC 7797) 签名验证?

对于 Ruby on Rails 项目中的非接触式支付实现,我需要验证回发的签名。签名是一个 JSON Web 签名 (JWS),具有分离的有效负载,遵循RFC 7797标准。

我看过ruby​​-jose gem 和ruby​​-jwt,但似乎都没有实现这个规范。

以前有没有人这样做过,或者任何人都可以指出我正确的方向吗?

0 投票
0 回答
60 浏览

c# - Jwt 有效载荷未加密

我似乎遗漏了一些关于 Jwt 的东西。我遵循了这个SO answer,它有效。

但是,我的数据仍然没有加密。

我生成一个私钥:

然后我(尝试)将其加密为 Jwt 令牌,使用以下命令:

这会产生一个 Jwt。当我将该令牌带到 jwt.io 时,我得到了这个: 在此处输入图像描述

如您所见,有效负载是可见的,无需我提供解码它的密钥。

我做错了什么,不理解?

0 投票
1 回答
167 浏览

jwt - 我有模数和指数如何使用 JavaScript 为某些有效负载生成 JWE

我们有一个要求,我们将从服务调用中获取模数,用于在客户端加密(JWE)一些数据

模数和指数示例(不能更改格式)

我正在尝试使用 JavaScript Jose 库来生成 JWE,但没有运气。

我从互联网上关注以下示例,但我的问题是我使用的模数似乎是大整数(我猜)格式,但示例显示不同的格式。

如果我有如上所示的模数和指数,是否有更好的方法可以将 JOSE 用于 JWE?或者可以如下所示完成,但我收到一个错误: