Подпись от моего подписанного OpenBadge не будет проверяться

Мне нужно иметь возможность выпускать Mozilla OpenBadges. Тем не менее, Валидатор на http://validator.openbadges.org/ говорит, что мое утверждение недействительно и для проверки подписи, хотя я следовал документации к письму. Метод Mozilla OpenBadges, который выполняет проверку подписи, находится по адресу http://github.com/brianloveswords/node-jws.

Я разместил этот вопрос здесь и здесь с моим кодом и полученным утверждением.

Хотя есть некоторая документация, полноценного примера подписанного утверждения, похоже, не хватает. Чтобы получить некоторую документацию, которую они предоставляют, см. Следующие две ссылки: (1) http://github.com/mozilla/openbadges/wiki/Assertions и (2) http://self-issued.info/ документы / проект-IETF-хосе-JSON-веб-signature.html#RS256Example

Если вам нужно что-то еще от меня, пожалуйста, дайте мне знать. Я старался быть как можно более подробным, но в то же время кратким.

Заранее спасибо! Фредди

2 ответа

Решение

Проблема оказалась в том, что у меня не было файла с открытым ключом в формате.pem. Открытый ключ должен содержать 65 символов в строке, а закрытый ключ должен содержать 64 символа в строке с -----BEGIN PUBLIC KEY----- и -----END PUBLIC KEY----- для обоих ключей в качестве верхних и нижних колонтитулов соответственно. С правильно отформатированной полезной нагрузкой я смог проверить ее на OpenBadges Validator, так что подписать ее с помощью PHPSecLib было вполне нормально! В любом случае, спасибо Нойберту за ваш вклад.

Ссылка RS256Example говорит об этом сверху: RSASSA-PKCS-v1_5 SHA-256

Так что сделайте это с phpseclib:

$rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
$rsa->setHash('sha256');
Другие вопросы по тегам