
إصلاح للتحقق من التوقيعات ECDSA وEDDSA في مشروع Wycheproof، يعالج فحوصات الطول المفقودة التي سمحت بالتلاعب بالبايتات الصفرية أثناء فك تشفير التوقيع.
تم تحديد مشاكل في التحقق من توقيعات ECDSA و EDDSA في مشروع Wycheproof. تسمح الفحوصات الناقصة أثناء مرحلة فك ترميز التوقيعات بإضافة أو إزالة البايتات الصفرية، مما يؤثر على قدرة إرسال البريد الإلكتروني. يعمل هذا التحديث في ملف signature.js على حل هذه المشاكل من خلال التحقق من طول التوقيعات.
git clone https://github.com/tu_usuario/tu_repositorio.git
// التحقق من توقيع 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));