source: trunk/NativeCryptography/NativeCryptography.h @ 1196

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

some cleanups and fixes

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