#java #cryptography #blackberry-jde
#java #криптография #blackberry-jde
Вопрос:
Я должен предоставить средство для кодирования, декодирования открытого ключа RSA, который не был получен API Certicom, но у RIM есть класс publicKeyEncoder, который абстрагирует весь процесс.
Однако он ожидает объект, реализующий интерфейс PublicKey, а также интерфейс CryptoSystem — но я нигде не нашел никаких примеров.
Кто-нибудь имеет представление о том, в каком направлении двигаться? Как работает криптосистема?
Ответ №1:
Это работает следующим образом:
* cryptoSystem = new RSACryptoSystem(1024);
byte[] expo = Base64InputStream.decode(exponent, 0, exponent.length());
byte[] modul = Base64InputStream.decode(modulus, 0, modulus.length());
byte[] pArr = Base64InputStream.decode(p, 0, p.length());
byte[] qArr = Base64InputStream.decode(q, 0, q.length());
byte[] dpArr = Base64InputStream.decode(dp, 0, dp.length());
byte[] dqArr = Base64InputStream.decode(dq, 0, dq.length());
byte[] inverseQArr = Base64InputStream.decode(inverseQ, 0, inverseQ.length());
byte[] dArr = Base64InputStream.decode(d, 0, d.length());
// Public Key Setup
RSAPublicKey publicKey = new RSAPublicKey( cryptoSystem, expo, modul);
RSAEncryptorEngine eEngine = new RSAEncryptorEngine( publicKey );
fEngine = new PKCS1FormatterEngine(eEngine);
// Private Key Setup
RSAPrivateKey privateKey = new RSAPrivateKey(cryptoSystem, expo, pArr, qArr, dpArr, dqArr, inverseQArr);
dEngine = new RSADecryptorEngine(privateKey);
ufEngine = new PKCS1UnformatterEngine(dEngine);