Я пытался понять 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, очень приветствуются.