source: chevmsgr/trunk/KISA_SHA256.h@ 7

Last change on this file since 7 was 7, checked in by cheese, 9 years ago

암복호 알고리즘 추가

File size: 2.1 KB
Line 
1/**
2@file KISA_SHA_256.h
3@brief SHA256 ¾ÏÈ£ ¾Ë°í¸®Áò
4@author Copyright (c) 2013 by KISA
5@remarks http://seed.kisa.or.kr/
6*/
7
8#ifndef SHA256_H
9#define SHA256_H
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15#ifndef OUT
16#define OUT
17#endif
18
19#ifndef IN
20#define IN
21#endif
22
23#ifndef INOUT
24#define INOUT
25#endif
26
27#undef BIG_ENDIAN
28#undef LITTLE_ENDIAN
29
30#if defined(USER_BIG_ENDIAN)
31 #define BIG_ENDIAN
32#elif defined(USER_LITTLE_ENDIAN)
33 #define LITTLE_ENDIAN
34#else
35 #if 0
36 #define BIG_ENDIAN
37 #elif defined(_MSC_VER)
38 #define LITTLE_ENDIAN
39 #else
40 #error
41 #endif
42#endif
43
44typedef unsigned long ULONG;
45typedef ULONG* ULONG_PTR;
46
47typedef unsigned int UINT;
48typedef UINT* UINT_PTR;
49
50typedef signed int SINT;
51typedef SINT* SINT_PTR;
52
53typedef unsigned char UCHAR;
54typedef UCHAR* UCHAR_PTR;
55
56typedef unsigned char BYTE;
57
58#define SHA256_DIGEST_BLOCKLEN 64
59#define SHA256_DIGEST_VALUELEN 32
60
61typedef struct{
62 UINT uChainVar[SHA256_DIGEST_VALUELEN / 4];
63 UINT uHighLength;
64 UINT uLowLength;
65 BYTE szBuffer[SHA256_DIGEST_BLOCKLEN];
66} SHA256_INFO;
67
68/**
69@brief ¿¬¼âº¯¼ö¿Í ±æÀ̺¯¼ö¸¦ ÃʱâÈ­ÇÏ´Â ÇÔ¼ö
70@param Info : SHA256_Process È£Ã⠽à »ç¿ëµÇ´Â ±¸Á¶Ã¼
71*/
72void SHA256_Init( OUT SHA256_INFO *Info );
73
74/**
75@brief ¿¬¼âº¯¼ö¿Í ±æÀ̺¯¼ö¸¦ ÃʱâÈ­ÇÏ´Â ÇÔ¼ö
76@param Info : SHA256_Init È£ÃâÇÏ¿© ÃʱâÈ­µÈ ±¸Á¶Ã¼(³»ºÎÀûÀ¸·Î »ç¿ëµÈ´Ù.)
77@param pszMessage : »ç¿ëÀÚ ÀÔ·Â Æò¹®
78@param inLen : »ç¿ëÀÚ ÀÔ·Â Æò¹® ±æÀÌ
79*/
80void SHA256_Process( OUT SHA256_INFO *Info, IN const BYTE *pszMessage, IN UINT uDataLen );
81
82/**
83@brief ¸Þ½ÃÁö µ¡ºÙÀ̱â¿Í ±æÀÌ µ¡ºÙÀ̱⸦ ¼öÇàÇÑ ÈÄ ¸¶Áö¸· ¸Þ½ÃÁö ºí·ÏÀ» °¡Áö°í ¾ÐÃàÇÔ¼ö¸¦ È£ÃâÇÏ´Â ÇÔ¼ö
84@param Info : SHA256_Init È£ÃâÇÏ¿© ÃʱâÈ­µÈ ±¸Á¶Ã¼(³»ºÎÀûÀ¸·Î »ç¿ëµÈ´Ù.)
85@param pszDigest : ¾ÏÈ£¹®
86*/
87void SHA256_Close( OUT SHA256_INFO *Info, OUT BYTE *pszDigest );
88
89/**
90@brief »ç¿ëÀÚ ÀÔ·Â Æò¹®À» Çѹø¿¡ ó¸®
91@param pszMessage : »ç¿ëÀÚ ÀÔ·Â Æò¹®
92@param pszDigest : ¾ÏÈ£¹®
93@remarks ³»ºÎÀûÀ¸·Î SHA256_Init, SHA256_Process, SHA256_Close¸¦ È£ÃâÇÑ´Ù.
94*/
95void SHA256_Encrpyt( IN const BYTE *pszMessage, IN UINT uPlainTextLen, OUT BYTE *pszDigest );
96
97#ifdef __cplusplus
98}
99#endif
100
101#endif
Note: See TracBrowser for help on using the repository browser.