
Wycheproof परियोजना में ECDSA और EDDSA हस्ताक्षर सत्यापन के लिए फिक्स, लापता लंबाई जांच को संबोधित करता है जो हस्ताक्षर डिकोडिंग के दौरान शून्य-बाइट हेरफेर की अनुमति देता था।
वायचेप्रूफ परियोजना में ECDSA और EDDSA हस्ताक्षर सत्यापन में समस्याएं पाई गई हैं। हस्ताक्षर डिकोडिंग चरण के दौरान अनुपस्थित जाँचें शून्य बाइट्स जोड़ने या हटाने की अनुमति देती हैं, जो ईमेल भेजने की क्षमता को प्रभावित करती हैं। signature.js फ़ाइल में यह अद्यतन हस्ताक्षरों की लंबाई की जाँच करके इन समस्याओं का समाधान करता है।
git clone https://github.com/tu_usuario/tu_repositorio.git
cd tu_repositorio
npm install
उपयोग
var elliptic = require('elliptic');
var eddsa = elliptic.eddsa;
var ec = new elliptic.ec('secp256k1')
var ed25519 = new eddsa('ed25519');
var key = ed25519.keyFromPublic('7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa', 'hex');
// EDDSA हस्ताक्षर सत्यापन
var msg = '54657374';
var sig = '7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d00';
console.log(key.verify(msg, sig));
// ECDSA हस्ताक्षर सत्यापन
var hash = require('hash.js');
var toArray = elliptic.utils.toArray;
var hashMsg = hash.sha256().update(toArray(msg, 'hex')).digest();
var pubKey = ec.keyFromPublic('04b838ff44e5bc177bf21189d0766082fc9d843226887fc9760371100b7ee20a6ff0c9d75bfba7b31a6bca1974496eeb56de357071955d83c4b1badaa0b21832e9', 'hex');
console.log('Valid signature: ' + pubKey.verify(hashMsg, sig));