/// <summary> /// constructor /// </summary> public BlowfishAlgorithm() : base() { m_bf = null; m_bfc = null; // FIXME: are we supposed to create a default key and IV? IVValue = null; KeyValue = null; KeySizeValue = Blowfish.MAXKEYLENGTH * 8; LegalBlockSizesValue = new KeySizes[1]; LegalBlockSizesValue[0] = new KeySizes(BlockSize, BlockSize, 8); LegalKeySizesValue = new KeySizes[1]; LegalKeySizesValue[0] = new KeySizes(0, Blowfish.MAXKEYLENGTH * 8, 8); ModeValue = CipherMode.ECB; m_rng = null; }
BlowfishAlgorithm ( byte[] key, byte[] iv, bool blCBC, bool blIsEncryptor ) { if (null == key) { GenerateKey(); } else { Key = key; } if (blCBC) { if (null == iv) { GenerateIV(); } else { IV = iv; } m_bf = null; m_bfc = new BlowfishCBC(KeyValue, IVValue); } else { m_bf = new Blowfish(KeyValue); m_bfc = null; } m_blIsEncryptor = blIsEncryptor; }