Я пытался разобраться в API-интерфейсах криптографии BouncyCastle для Java. К сожалению, я обнаружил, что криптография Java в целом настолько скрыта интерфейсами и жаргоном поставщиков услуг, что я не могу понять, что на самом деле делает что-либо. Я неоднократно пытался читать необходимую документацию, но она оставалась непонятной, вводя множество концепций, выходящих далеко за рамки того, что, как я думаю, должно быть необходимо.
Все, что мне действительно нужно, это класс, который делает следующее:
public class KeyPair {
public byte[] public;
public byte[] private;
}
public class RSACrypto {
public static KeyPair generateRSAKeyPair() { /*implementation*/}
public static byte[] encrypt(byte[] data, byte[] publicKey) { /*impl*/}
public static byte[] decrypt(byte[] encryptedData, byte[] privateKey) { /*impl*/ }
}
Извините, если это невероятно сложный вопрос, чтобы задать его как «все, что я действительно хочу». Любые указатели на то, где можно прочитать о криптографии Java и BouncyCastle, очень приветствуются. Приветствуются любые обзоры того, как на самом деле устроены криптосистемы Java.