summaryrefslogtreecommitdiff
path: root/include/des.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/des.h')
-rw-r--r--include/des.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/include/des.h b/include/des.h
new file mode 100644
index 0000000..27619aa
--- /dev/null
+++ b/include/des.h
@@ -0,0 +1,45 @@
+#ifndef _DES_H
+#define _DES_H
+
+#ifndef uint8
+#define uint8 unsigned char
+#endif
+
+#ifndef uint32
+#define uint32 unsigned long int
+#endif
+
+typedef struct
+{
+ uint32 esk[32]; /* DES encryption subkeys */
+ uint32 dsk[32]; /* DES decryption subkeys */
+}
+des_context;
+
+typedef struct
+{
+ uint32 esk[96]; /* Triple-DES encryption subkeys */
+ uint32 dsk[96]; /* Triple-DES decryption subkeys */
+}
+des3_context;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int des_set_key( des_context *ctx, uint8 key[8] );
+void des_encrypt( des_context *ctx, uint8 input[8], uint8 output[8] );
+void des_decrypt( des_context *ctx, uint8 input[8], uint8 output[8] );
+
+int des3_set_2keys( des3_context *ctx, uint8 key1[8], uint8 key2[8] );
+int des3_set_3keys( des3_context *ctx, uint8 key1[8], uint8 key2[8],
+ uint8 key3[8] );
+
+void des3_encrypt( des3_context *ctx, uint8 input[8], uint8 output[8] );
+void des3_decrypt( des3_context *ctx, uint8 input[8], uint8 output[8] );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* des.h */