diff dcrypt/misc/Bitwise.d @ 23:4589f8c5eb3c

Replaced dcrypt.crypto.Util with dcrypt.misc.Bitwise and dcrypt.misc.ByteConverter. Altered all dependent files to reflect changes.
author Thomas Dixon <reikon@reikon.us>
date Sat, 14 Feb 2009 19:58:20 -0500
parents
children 6428dfd7fede
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dcrypt/misc/Bitwise.d	Sat Feb 14 19:58:20 2009 -0500
@@ -0,0 +1,45 @@
+/**
+ * This file is part of the dcrypt project.
+ *
+ * Copyright: Copyright (C) dcrypt contributors 2008. All rights reserved.
+ * License:   MIT
+ * Authors:   Thomas Dixon
+ */
+
+module dcrypt.misc.Bitwise;
+
+/** Common bitwise operations */
+struct Bitwise {
+    
+    static uint rotateLeft(uint x, int y) {
+        return (x << y) | (x >> (32-y));
+    }
+    
+    static uint rotateLeft(uint x, uint y) {
+        return (x << y) | (x >> (32u-y));
+    }
+    
+    static ulong rotateLeft(ulong x, int y) {
+        return (x << y) | (x >> (64-y));
+    }
+    
+    static ulong rotateLeft(ulong x, uint y) {
+        return (x << y) | (x >> (64u-y));
+    }
+    
+    static uint rotateRight(uint x, int y) {
+        return (x >> y) | (x << (32-y));  
+    }
+    
+    static uint rotateRight(uint x, uint y) {
+        return (x >> y) | (x << (32u-y));    
+    }
+    
+    static ulong rotateRight(ulong x, int y) {
+        return (x >> y) | (x << (64-y));    
+    }
+    
+    static ulong rotateRight(ulong x, uint y) {
+        return (x >> y) | (x << (64u-y));    
+    }
+}