0

我需要能够发布 Mozilla OpenBadges。但是,http://validator.openbadges.org 上的验证器我的断言无效并验证签名,即使我遵循了文档的信函。执行签名验证检查的 Mozilla OpenBadges 方法位于http://github.com/brianloveswords/node-jws#jwsverifysignature-secretorkey

我已经在这里这里用我的代码和结果断言发布了这个问题。

虽然有一些文档,但似乎缺少签名断言的完整示例。对于他们提供的一些文档,请参阅以下两个链接:(1) http://github.com/mozilla/openbadges/wiki/Assertions#signed-badges和 (2) http://self-issued.info/ docs/draft-ietf-jose-json-web-signature.html#RS256Example

如果您需要我提供更多信息,请告诉我。我试图在这里尽可能详细而简洁。

先感谢您!——弗雷迪

4

2 回答 2

0

RS256Example 链接在顶部说: RSASSA-PKCS-v1_5 SHA-256

所以使用 phpseclib 执行此操作:

$rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
$rsa->setHash('sha256');
于 2013-10-23T05:32:11.560 回答
0

问题原来是我没有 .pem 格式的公钥文件。公钥必须为每行 65 个字符,私钥必须为每行 64 个字符,两个密钥都使用 -----BEGIN PUBLIC KEY----- 和 -----END PUBLIC KEY-----分别作为页眉和页脚。正确格式化有效负载后,我可以在 OpenBadges 验证器上对其进行验证,因此使用 PHPSecLib 对其进行签名完全没问题!无论如何,感谢 neubert 的意见。

于 2013-10-31T18:55:49.950 回答