Я пытаюсь перенести приведенный ниже Java-код на C #, но у меня возникли трудности с определением эквивалента:
SecretKey skey
SecretKeySpec skey_spec
IvParameterSpec iv_spec
KeyPair rsaKey
KeyGenerator kgen
Буду признателен, если кто-нибудь поможет мне с этими ...
package entry;
public class Encrypt {
SecretKey skey;
SecretKeySpec skey_spec;
byte[] iv;
IvParameterSpec iv_spec;
KeyPair rsaKey;
Random random;
public Encrypt() {
random = new Random();
}
public void initAES() {
System.out.println("Initializing AES Keys...");
KeyGenerator kgen = null;
try {
kgen = KeyGenerator.getInstance("AES");
} catch(NoSuchAlgorithmException nsae) {
nsae.printStackTrace();
}
kgen.init(256);
// Generate the secret key specs.
skey = kgen.generateKey();
byte[] raw = skey.getEncoded();
skey_spec = new SecretKeySpec(raw, "AES");
iv = new byte[16];
random.nextBytes(iv);
iv_spec = new IvParameterSpec(iv);
}
}
ОБНОВЛЕНИЕ попытки в c #:
private byte[] _secretKey_iv;
private byte[] _secretKey;
private void GenerateKey()
{
RijndaelManaged myAES = new RijndaelManaged();
myAES.KeySize = 256;
myAES.GenerateIV();
myAES.GenerateKey();
_secretKey_iv = myAES.IV;
_secretKey = myAES.Key;
}
ОБНОВЛЕНИЕ № 2:
KeyGenerator kgen
SecretKeySpec skey_spec
IvParameterSpec iv_spec
До сих пор не знаю, как получить спецификации из сгенерированного ключа AES, и буду очень признателен за помощь в понимании того, как это сделать. Я до сих пор не уверен, является ли это правильным преобразованием KeyGenerator?
KeyGenerator является частью BouncyCastleProvider?