Ejemplo n.º 1
0
        public AesAlgorithmImp GetAlgorithm(byte[] key)
        {
            IKeyExpander      expander    = GetKeyExpander(key.Length);
            IRoundKeyProvider keyProvider = new RoundKeyProvider(key, expander, _processor);

            return(new AesAlgorithmImp(keyProvider));
        }
Ejemplo n.º 2
0
 public RoundKeyProvider(byte[] encryptionKey,
                         IKeyExpander expander,
                         IConvertProcessor <List <byte[, ]>, byte[]> processor)
 {
     byte[] expandedKey = expander.ExpandKey(encryptionKey);
     _keys      = processor.ConvertTo(expandedKey);
     KeysNumber = _keys.Count;
 }
Ejemplo n.º 3
0
 public XorEncrypter(
     IBytesCoder bytesCoder,
     IArrayPacker <byte, int> arrayPacker,
     IKeyExpander <int> keyExpander)
 {
     this.bytesCoder  = bytesCoder;
     this.arrayPacker = arrayPacker;
     this.keyExpander = keyExpander;
 }
Ejemplo n.º 4
0
        public void Check256BitKeyExpansion()
        {
            _expander = new AesKeyExpander256(32);
            byte[] keySequence      = _expander.ExpandKey(new byte[32]);
            byte   lastByte         = keySequence[keySequence.Length - 1];
            byte   expectedLastByte = 0x85;

            Assert.AreEqual(lastByte, expectedLastByte);
        }
Ejemplo n.º 5
0
        public void Check192BitKeyExpansion()
        {
            _expander = new AesKeyExpander128And192(24);
            byte[] keySequence      = _expander.ExpandKey(new byte[24]);
            byte   lastByte         = keySequence[keySequence.Length - 1];
            byte   expectedLastByte = 0x70;

            Assert.AreEqual(lastByte, expectedLastByte);
        }