summaryrefslogtreecommitdiffstats
path: root/private/nw/rdr/crypto.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/nw/rdr/crypto.h')
-rw-r--r--private/nw/rdr/crypto.h139
1 files changed, 139 insertions, 0 deletions
diff --git a/private/nw/rdr/crypto.h b/private/nw/rdr/crypto.h
new file mode 100644
index 000000000..0de8e0865
--- /dev/null
+++ b/private/nw/rdr/crypto.h
@@ -0,0 +1,139 @@
+/* crypto.h
+ *
+ * Prototypes and definitions for services in crypto.c
+ *
+ * ported to win nt from win 95 on 6/95
+ * Cory West
+ */
+
+#include <windef.h>
+
+#define CIPHERBLOCKSIZE 8 // size of RC2 block
+#define MAX_RSA_BITS 512 // actually 420
+#define MAX_RSA_BYTES (MAX_RSA_BITS/8)
+
+#define B_PSIZEBITS 210
+#define B_PSIZEWORDS (1 + B_PSIZEBITS/32)
+
+void __cdecl
+GenRandomBytes(
+ BYTE *output,
+ int len
+);
+
+//
+// Generate an 8 byte key from a seed of the given length.
+//
+
+void __cdecl
+GenKey8(
+ BYTE *keyData,
+ int keyDataLen,
+ BYTE key8[8]
+);
+
+void __cdecl
+MD2(
+ BYTE *input,
+ const int inlen,
+ BYTE *output
+);
+
+//
+// RC2 encrypt and decrypt wrappers.
+//
+
+int __cdecl
+CBCEncrypt(
+ BYTE *key, // secret key
+ BYTE const *ivec, // initialization vector, NULL implies zero vector
+ BYTE *const input, // plain text
+ int inlen, // size of plaintext
+ BYTE *const output, // encrypted text
+ int *outlen, // OUTPUT: size of encrypted text
+ const int checksumlen // size of checksum, if 0 no checksum is used
+);
+
+int __cdecl
+CBCDecrypt(
+ BYTE *key, // secret key
+ BYTE *ivec, // initialization vector, null ptr implies zero vector
+ BYTE *input, // encrypted text
+ int inlen, // size of encrypted text
+ BYTE *output, // plain text
+ int *outlen, // OUTPUT: size of plaintext
+ int checksumlen // size of checksum; 0=> no checksum
+);
+
+//
+// Wrappers to the RSA code.
+//
+
+int __cdecl
+RSAGetInputBlockSize(
+ BYTE *keydata,
+ int keylen
+);
+
+BYTE * __cdecl
+RSAGetModulus(
+ BYTE *keydata,
+ int keylen,
+ int *modSize
+);
+
+BYTE * _cdecl
+RSAGetPublicExponent(
+ BYTE *keydata,
+ int keylen,
+ int *expSize
+);
+
+int __cdecl
+RSAPack(
+ BYTE *input,
+ int inlen,
+ BYTE *output,
+ int blocksize
+);
+
+int __cdecl
+RSAPublic(
+ BYTE *pukeydata, // BSAFE 1 itemized public key data
+ int pukeylen, // length of BSAFE1 keydata (including sign)
+ BYTE *input, // input block
+ int inlen, // size of input (< modulus)
+ BYTE *output // encrypted block (modulus sized)
+);
+
+int __cdecl
+RSAPrivate(
+ BYTE *prkeydata,
+ int prkeylen,
+ BYTE *input,
+ int inlen,
+ BYTE *output
+);
+
+int __cdecl
+RSAModMpy(
+ BYTE *pukeydata, // BSAFE 1 itemized public key data
+ int pukeylen, // length of BSAFE1 keydata (including sign)
+ BYTE *input1, // input block
+ int inlen1, // size of input (< modulus)
+ BYTE *input2, // multiplier
+ int inlen2, // size of multiplier
+ BYTE *output // encrypted block (modulus sized)
+);
+
+int __cdecl
+RSAModExp(
+ BYTE *pukeydata, // BSAFE 1 itemized public key data
+ int pukeylen, // length of BSAFE1 keydata (including sign)
+ BYTE *input1, // input block
+ int inlen1, // size of input (< modulus)
+ BYTE *exponent,
+ int explen,
+ BYTE *output // encrypted block (modulus sized)
+);
+