2015-08-11 5 views
0

Я использую jsrsasign для проверки JWT в приложении для браузера; JWT подписывается с асимметричным ключом RSA на сервере (с использованием другой библиотеки).jsrsasign: Не удается проверить JWT с открытым ключом PEM RSA

Я пытаюсь сделать следующее:

jsrsasign.default.jws.JWS.verifyJWT('ey.......' /* my jwt */, '-----BEGIN RSA PUBLIC KEY----- 
MIIBCgKCAQEAwEYqf3HAL+h0CbcM6cnVfT6hDw0nNPkLYKld54qRYhJa+txnI8so 
bIhP4/1l3TnNZldFFOatRlZAxuNG8Dk4L/QQmDeIsOkYQ5oiytSCbUrJv44aOPjL 
G72XhVOaOLMT2vp/guOVAjTYOyF83asoOpPVtFeiBHhKudMrpPzeq3qwGMxfVVPy 
NlztFjnTlkAKMtkbkwcpzdTn4y/pDo47+LgkDckReoqTIK4Z1bp86Oa6eBOa7/6w 
hIXG3aCQiMQfJUBEBRA7mmV4g+jNWMhCBMEsOZj+KUErfilPv1FL4zP3E8kNCu+B 
GYCSuj0doIxreVHDifXd+5Lmhr6NDkhG5QIDAQAB 
-----END RSA PUBLIC KEY-----', { alg: 'RS256'}); 

Я получаю сообщение об ошибке, что это совершенно бесполезно - он говорит, что «не поддерживается аргумент». Кто-нибудь сталкивался с этим? Что вы сделали для решения проблемы?

ответ

0

Эта проблема была решена здесь: https://github.com/kjur/jsrsasign/issues/105

Библиотека поддерживает только открытые ключи в формате # 8 PKCS, не PCKS1. Существует отличное объяснение различных форматов (и конверсии между ними) здесь: How can I transform between the two styles of public key format, one "BEGIN RSA PUBLIC KEY", the other is "BEGIN PUBLIC KEY"

Смежные вопросы