sw2009/07/20 15:15

함수정의

extern void crypt_seed ()

파라미터

const char *seed

호출자

-       authenticate:: encrypt_password

-       authenticate:: io_relseek

메모

-       암호화 알고리즘에서 사용할 시드값을 셋팅한다.



함수정의

extern int crypt_encrypt_printable ()

파라미터

const char *line

char *crypt

int maxlen

호출자

-       authenticate:: encrypt_password

메모

-       CryptoAcquireContext

사용하고자하는CSP와연결(CSP key container의핸들을얻어옴)

1: hProv : 함수수행결과를담을포인터

2: NULL : key container의이름을담는문자열, 값을주지않을경우에는default

key container를사용(CRYPT_VERIFYCONTEXT 일때는null)

3: MS_ENHANCED_PROV : 사용하고자하는CSP의이름을저장하는문자열,

                               값을지정하지않으면default CSP를사용

4: PROV_RSA_FULL : providertype,

keyexchanger : RSA,

Signature : RSA,

Encryption : RC2, RC4,

Hashing : MD5, SHA

5: CRYPT_VERIFYCONTEXT :보관된개인키를사용할때, 일반적으로0

-       CryptoImportKey

키를다른저장소에보관할필요가있다면 CryptExportKey 함수를이용하여키를익스포트하고, CryptImportKey 함수를이용하여임포트하여저장소에저장함

 CRYPT_EXPORTABLE : 공개키쌍내보내기제어

-       CryptSetKeyParam

l  모드 설정

다양한key의동작을사용자정의해준다.

             KP_MODE : cipher mode 의지정, pbData는반드시DWORD 값이어야한다.

             대칭키암호화: 암호화와복호화에동일한키사용

                       block cipher(DES, SEED),

stream cipher(RC4, LFSR)[과거에많이사용] 두가지가있다.

              block cipher 모드에는:

                       Electronic Codebook (ECB) mode

                       Cipher Block Chaining (CBC) mode

                       Counter Mode (CTR) mode

              ECB : 각블록을독립적으로암호화, 다른블록과연관성이없다.

 CBC : 앞에서암호화한블럭을가지고다음블럭을암호화

l  패딩 설정

PKCS #5를패딩규칙으로지정한다.

패딩:

                  암호화를하기위해서블럭단위로나누게되는데마지막블럭의경우

                  항상딱떨어지게나뉘지않는경우가있다.

                  이럴경우어떻게처리를하게되는지를결정하는것이다.

                  PKCS5를사용하면일정한(공백이나특수문자등) 기호를뒤에붙인다.

             PKCS #5 (패스워드기반암호표준- PasswordBased Encryption Standard)

                  RSA사가제시한공개키암호표준의하나. 개인키정보를사용자의

                  패스워드에기반하여암호화하는방법을설명하고있으며,

     네트워크상에서개인키를전송시킬때키에대한암호화를목적으로한다.



함수정의

extern int crypt_decrypt_printable ()

파라미터

const char *crypt

char *decrypt

int maxlen) __attribute__ ((deprecated)

호출자

-       authenticate:: io_relseek

메모

-       no op



함수정의

extern int crypt_encrypt_sha1_printable ()

파라미터

const char *line

char *crypt

int maxlen

호출자

-       authenticate:: encrypt_password_sha1

메모

-       sha1 알고리즘을 이용한 암호화



Posted by redef

댓글을 달아 주세요