2012-01-25 13 views
5

RSA-Sign JavaScript Library ile RSA-SHA1 imzaları oluşturmak istiyorum. Özellikle, OAuth isteklerini imzalamak için bunu kullanmak istiyorum. Bununla birlikte, JavaScript kitaplığı tarafından oluşturulan imza, örn. Buna karşılıkYönlendirici ile RSA-SHA1 imzaları oluşturma

$ echo -n "x" | openssl dgst -sha1 -sign priv.key -binary | openssl base64 | xargs echo -n 
eV0ZrD7ZrTsuzHHYSwLfUJhXuM96D6ZyIzD5FFphzHbKRaO4TMeTR7bJjkuPib+l 
EccM7t6YNDvRgOHyXJDVZZQTg5G4D4jnGVmOgeuti1etCCpLsb1Rl3sfJF/rIlgA 
AmejvBbrEG+n8L+GeD6Vd3cneW7k2Rksnh+/BWnnR3c= 

ile:

Nzk1ZDE5YWMzZWQ5YWQzYjJlY2M3MWQ4NGIwMmRmNTA5ODU3YjhjZjdhMGZhNjcy 
MjMzMGY5MTQ1YTYxY2M3Ng0KY2E0NWEzYjg0Y2M3OTM0N2I2Yzk4ZTRiOGY4OWJm 
YTUxMWM3MGNlZWRlOTgzNDNiZDE4MGUxZjI1YzkwZDU2NQ0KOTQxMzgzOTFiODBm 
ODhlNzE5NTk4ZTgxZWJhZDhiNTdhZDA4MmE0YmIxYmQ1MTk3N2IxZjI0NWZlYjIy 
NTgwMA0KMDI2N2EzYmMxNmViMTA2ZmE3ZjBiZjg2NzgzZTk1Nzc3NzI3Nzk2ZWU0 
ZDkxOTJjOWUxZmJmMDU2OWU3NDc3Nw== 

bu olduğunu mümkün mü (elbette, aynı giriş & anahtarı varsayarak): Bu kütüphane (base64 olarak kodlanmış) oluşturur şeydir SHA1 uygulaması kullanıldığından dolayı? Bu durumda, başka birini kullanmaya çalışabilirim.

Kriptografi uzmanı değilim, ancak OAuth RFC 5849, kütüphane için geçerli olan RSASSA-PKCS1-V1_5-SIGN'ın kullanılması gereken saying.

Çok teşekkür ederim.

cevap

3

Yukarıda belirttiğiniz openssl komutunu ve JS kütüphanesini denedim ve sonuçlar tutarlı. Her iki yönden aldığım imzalar aynı.

Yayınınızdan farkettiğim bir şey, kitaplıktan oluşturulan base64 kodlanmış sonucun çok uzun ve yanlış göründüğü. İkili imzayı base64 kodlamak mümkün değil mi?

Bu kod, base64 kodlu dizgesini elde etmek için dener misiniz? Eğer openssl komutla ilgili ne "base64_encoded_signature" değerini karşılaştırırsanız

function doSign() { 
    var rsa = new RSAKey(); 
    rsa.readPrivateKeyFromPEMString(document.form1.prvkey1.value); //replace with your private key 
    var hSig = rsa.signString("x", "sha1"); 
    var base64_encoded_signature = hex2b64(hSig); 
} 

, bunlar aynı olmalıdır.

+0

Geç cevap için özür dilerim. Evet, görünüşe göre onlardan önce baytları dönüştürmek yerine onaltılık dizgiyi kodluyordum. Çok teşekkür ederim! – Simon

İlgili konular