Как сохранить ключ AES 256 в PKCS12 Keystore (файл .pks или .p12) в C # - PullRequest
0 голосов
/ 30 октября 2019

Мне нужно хранить 256-битный ключ AES в хранилище ключей, используя C #. Я пытался использовать Org.BouncyCastle.Pkcs.Pkcs12Store , но не смог сохранить ключ AES. Я могу сделать это в JAVA, используя следующий код, но не могу сделать то же самое в C #.

try{
        KeyStore keyStore = KeyStore.getInstance("PKCS12");
        keyStore.load(null, null);

        KeyGenerator keyGen = KeyGenerator.getInstance("AES");
        keyGen.init(256);
        Key key = keyGen.generateKey();
        for(byte b: key.getEncoded()) {
            System.out.print(b);
        }
        System.out.println("");
        keyStore.setKeyEntry("secret", key, "password".toCharArray(), null);

        keyStore.store(new FileOutputStream("output.p12"), "password".toCharArray());

        try{
            keyStore = KeyStore.getInstance("PKCS12");
            keyStore.load(new FileInputStream("output.p12"), "password".toCharArray());

            Key pvtKey = keyStore.getKey("secret", "password".toCharArray());
            //System.out.println(pvtKey.getEncoded().toString());
            for(byte b: pvtKey.getEncoded()) {
                System.out.print(b);
            }
            System.out.println("");
        } catch (Exception ex){
            ex.printStackTrace();
        }
    } catch (Exception ex){
        ex.printStackTrace();
    }

Пожалуйста, помогите мне.

...