Я новичок, когда дело доходит до криптографии и таких вещей. Я не (и не хочу) знать детали SHA256 и RSA. Я "знаю", что они делают, а не как они это делают, и на данный момент это достаточно.
Мне интересно, что такое "SHA256withRSA" -алгоритм (если вы можете это назвать) действительно делать и в каком порядке. Например, он hash данные с SHA256, а затем шифрует его с помощью RSA или это наоборот или что-то еще?
Причина, по которой я спрашиваю, заключается в том, что я хочу сделать эквивалент java:
Signature.getInstance("SHA256withRSA")
signature.initSign(privateKey); //privateKey == a key extracted from a .p12 file
в Objective-C на iOS. И я не мог найти ничего, что делает именно это, поэтому я спрашиваю, могу ли я просто хэш-данные (SHA256), а затем зашифровать его (RSA) (или наоборот) и получить такое же поведение?
Каково предлагаемое решение для такого рода вещей?
Спасибо!
EDIT: Я не упомянул, что я подписываю данные с помощью закрытого ключа, который получается:
KeyStore keystore = KeyStore.getInstance("PKCS12");
keystore.load(new FileInputStream(new File(filename)), password.toCharArray());
PrivateKey privateKey = (PrivateKey)keystore.getKey(alias, password.toCharArray());
Где имя файла, например: "/somewhere/mykey.p12".