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;
+    }
+}