Как реализовать CryptoSystem, интерфейс PublicKey - PullRequest
1 голос
/ 23 апреля 2011

Я должен предоставить средства для кодирования, декодирования открытого ключа RSA, который не был получен API Certicom, но в RIM есть класс publicKeyEncoder, который абстрагирует весь процесс.

Однако ожидается объект, реализующий интерфейс PublicKey, а также интерфейс CryptoSystem - но я нигде не нашел примеров.

Кто-нибудь знает, в каком направлении идти? Как работает CryptoSystem?

1 Ответ

1 голос
/ 23 января 2013

Работает так:

     *  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);
...