هل يمكنني استخدام مفاتيح RSICREPTOSERVICEPROVIRE العامة / الخاصة إلى Interop مع Crypto ++؟

StackOverflow https://stackoverflow.com/questions/919733

سؤال

لقد قمت بإنشاء مفتاح عام / خاص باستخدام rsacryptoserviceProvider. وحفظها ك XML. يمكنني استخدام هذا لتشفير / فك تشفير / علامة والتحقق من البيانات في .NET.

لدي تطبيق آخر يهدف إلى تشغيله على خادم Linux. أقوم بتطويره في C ++ وأستخدم Crypto ++ لاحتياجات التشفيس الخاصة بي.

أريد مشاركة البيانات بين هذين التطبيقين، ولكن للقيام بذلك أحتاج إلى تحويل rsaparameters إلى مفاتيح عامة / خاصة التي يمكن أن تفهمها crypto ++.

أنا أيضا مفتوح لاستخدام تحويل المفاتيح العامة / الخاصة التي تم إنشاؤها بواسطة Crypto ++ إلى rsaparameters إذا كان من الأسهل القيام به.

أيه أفكار؟

هل كانت مفيدة؟

المحلول

الطريقة الأسهل هي ربما لاستخدام rsaparameters مباشرة بدلا من الذهاب فوق XML.

فقط قم بتخزين صفيفات البايت الموجودة في RSaparameters في ملف باستخدام تنسيق من اختيارك. قراءة صفيفات البايت مرة أخرى في برنامج C ++ الخاص بك وإنشاء Cryptopp :: Integer.ق منهم. استخدام تلك الأعداد الصحيحة لتهيئة rsafunction. (المفتاح العام) أو invertiblersafunction. (مفتاح سري).

الطريقة العكسية هي تباطؤ: أي

RSAFunction publicKey = ...;

size_t modulusLength = publicKey.getModulus().ByteCount();
unsigned char * modulus = new unsigned char[modulusLength];
publicKey.getModulus().Encode(modulus, modulusLength);

// similarly with PublicExponent and remember to clean up the arrays.

ونقل المصفوفات إلى تطبيقك .NET-Application الخاص بك، حيث يمكنك استخدامها لتهيئة rsaparameters.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top