Что ж,
Мне нужно сделать api с использованием java для шифрования, дешифрования и других вещей о Cryptografy. Я использую для этого фреймворк bouncycastle. Но я не могу найти Elliptic Curve Cryptigrafy Engine в BC Framework, я нашел RSAEngine, IESEngine.
Я хочу зашифровать с помощью открытого ключа и расшифровать с помощью закрытого ключа, но для всех найденных мной исключений требуются оба ключа для шифрования, поэтому я этого не понимаю. Нравится:
Security.addProvider(new BouncyCastleProvider());
KeyPairGenerator kpg = (KeyPairGenerator) KeyPairGenerator.getInstance("ECIES", "BC");
kpg.initialize(192, new SecureRandom());
KeyPair keyPair = kpg.generateKeyPair();
PublicKey pubKey = keyPair.getPublic();
PrivateKey privKey = keyPair.getPrivate();
byte[] d = new byte[]{1, 2, 3, 4, 5, 6, 7, 8}; // 1. can someone tell me what this parameters does?
byte[] e = new byte[]{8, 7, 6, 5, 4, 3, 2, 1};
IESParameterSpec param = new IESParameterSpec(d, e, 192); // 2. and this parameters?
IEKeySpec c1Key = new IEKeySpec(privKey, pubKey);
System.out.println(c1Key.getPublic());
Cipher cipher = Cipher.getInstance("ECIES", "BC");
cipher.init(Cipher.ENCRYPT_MODE, c1Key, param);
System.out.println(cipher.doFinal("test12345678900987654321".getBytes()));
Но в некоторых случаях у меня нет закрытого ключа, как зашифровать с открытым ключом.
Кто-нибудь Помогите мне?