コード例 #1
0
        public void EstablishKeyExchange(BigInteger serverKey)
        {
            BigInteger secretKey = DiffieHellman.GenerateSecretKey(serverKey, _privateKey);

            Interlocked.Exchange(ref _secretKey, secretKey);

            byte[] key = _secretKey.ToByteArray();

            Interlocked.Exchange(ref _aes, Rijndael.Create());

            _aes.Key = Hash.SHA256.Hash(key);

            _aes.IV      = new byte[16];
            _aes.Padding = PaddingMode.PKCS7;
        }
コード例 #2
0
 public void GenerateLocalKeys()
 {
     _privateKey = DiffieHellman.GeneratePrivateKey(PrivateKeyBitLength);
     _publicKey  = DiffieHellman.GeneratePublicKey(_privateKey);
 }