source: trunk/NativeCryptography/NativeCryptography.h @ 1201

Last change on this file since 1201 was 1201, checked in by Sven Rech, 12 years ago

fixed CFB

File size: 1.7 KB
Line 
1#pragma once
2#include "aes_core.h"
3#include "DES/des.h"
4#include <stdlib.h>
5
6using namespace System::Threading;
7using namespace System;
8
9namespace NativeCryptography {
10
11        public ref class Crypto
12        {
13        private:
14                enum class cryptMethod {methodAES, methodDES};
15
16                static array<unsigned char>^ zeroIV8 = gcnew array<unsigned char>(8);
17                static array<unsigned char>^ zeroIV16 = gcnew array<unsigned char>(16);
18
19                static void xorBlockAES(int *t1, int *t2);
20                static void xorBlockDES(int *t1, int *t2);
21                static void encrypt(unsigned char* in, unsigned char* out, const cryptMethod method, AES_KEY* aeskey, DES_key_schedule* deskey);
22                static void decrypt(unsigned char* in, unsigned char* out, const cryptMethod method, AES_KEY* aeskey, DES_key_schedule* deskey);
23                static void xorblock(unsigned char* t1, unsigned char* t2, const cryptMethod method);
24                static array<unsigned char>^ decryptAESorDES(array<unsigned char>^ Input, array<unsigned char>^ Key, array<unsigned char>^ IV, const int bits, const int length, const int mode, const int blockSize, const cryptMethod method);
25
26        public:
27                static array<unsigned char>^ decryptAES(array<unsigned char>^ Input, array<unsigned char>^ Key, array<unsigned char>^ IV, const int bits, const int length, const int mode)
28                {
29                        const int blockSize = 16;
30                        return decryptAESorDES(Input, Key, IV, bits, length, mode, blockSize, cryptMethod::methodAES);
31                }
32
33                static array<unsigned char>^ decryptDES(array<unsigned char>^ Input, array<unsigned char>^ Key, array<unsigned char>^ IV, const int length, const int mode)
34                {
35                        const int blockSize = 8;
36                        return decryptAESorDES(Input, Key, IV, 0, length, mode, blockSize, cryptMethod::methodDES);
37                }
38        };
39}
Note: See TracBrowser for help on using the repository browser.