Mercurial > projects > dcrypt
diff dcrypt/crypto/StreamCipherWrapper.d @ 4:3de3a2de13a0
Added MAC base class and HMAC. Added StreamCipherWrapper as part of the work on the high-level cipher API. Running on fumes, so hopefully there isn't too much stupid mixed into the code.
author | Thomas Dixon <reikon@reikon.us> |
---|---|
date | Thu, 14 Aug 2008 01:45:24 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dcrypt/crypto/StreamCipherWrapper.d Thu Aug 14 01:45:24 2008 -0400 @@ -0,0 +1,44 @@ +/** + * This file is part of the dcrypt project. + * + * Copyright: Copyright (C) dcrypt contributors 2008. All rights reserved. + * License: MIT + * Authors: Thomas Dixon + */ + +module dcrypt.crypto.StreamCipherWrapper; + +import dcrypt.crypto.SymmetricCipher; +import dcrypt.crypto.StreamCipher; +public import dcrypt.crypto.params.CipherParameters; + +/** High-level API for stream ciphers. */ +class StreamCipherWrapper : SymmetricCipher { + private StreamCipher cipher; + + this(StreamCipher sc) { + cipher = sc; + } + + void init(bool encrypt, CipherParameters params) { + cipher.init(encrypt, params); + } + + uint update(void[] input_, uint inOff, + uint len, void[] output_, uint outOff) { + cipher.processBytes(input_, inOff, len, output_, outOff); + return len; + } + + uint finish(void[] output_, uint outOff) { + return 0; + } + + void reset() { + cipher.reset(); + } + + char[] name() { + return cipher.name; + } +}