DES_CRYPT(3)

명칭
des_crypt, ecb_crypt, cbc_crypt, des_setparity - 고속 DES 암호화

프로그램 라이브러리
libc

서식
<rpc/des_crypt.h> int ecb_crypt(char *key, char *data, unsigned datalen, unsigned mode) int cbc_crypt(char *key, char *data, unsigned datalen, unsigned mode, char *ivec) void des_setparity(char *key)

해설
ecb_crypt() (와)과 cbc_crypt() (은)는, NBS DES (Data Encryption Standard)(을)를 실현하고 있습니다. 이러한 routine는, crypt(3) 보다 고속으로 범용적입니다. 또, DES 하드웨어가 준비되어 있으면, 그것도 이용할 수 있습니다. ecb_crypt() (은)는, ECB (Electronic Code Book) 모드로 암호화합니다. 이것은 데이터의 블록을 독립에 암호화하는 것입니다. cbc_crypt() (은)는, CBC (Cipher Block Chaining) 모드로 암호화합니다. 이것은 연속하는 블록을 하나에 연결하는 것입니다. CBC 모드는, 블록의 삽입, 삭제, 치환에 대한 보호를 행합니다. 또, 통상의 텍스트에 있어서의 정규성은 암호 텍스트에는 나타나지 않습니다.

이러한 routine를 사용하는 방법은 다음과 같습니다. 최초의 파라미터 key, (은)는, 패리티 첨부 8 바이트의 암호화 키입니다. 키의 패리티 ( DES 의 경우, 이것은 각 바이트의 하위 비트에 있습니다)를 설정하기 위해서는, des_setparity() (을)를 사용합니다. 2 번째의 파라미터 data 에는, 암호화 또는 암호 해제되는 데이터가 들어가 있습니다. 3 번째의 파라미터 datalen (은)는, data 의 길이 (바이트 단위)여, 이것은 8 의 배수가 아니면 안됩니다. 4 번째의 파라미터 mode (은)는, 몇개의 것의 논리합 ( OR'ing )에 의해 작성됩니다. 암호화의 방향에 관해서는, DES_ENCRYPT 인가 DES_DECRYPT 어느 쪽인가의 논리합 (을)를, 소프트웨어대 하드웨어의 암호화에 대해서는, DES_HW 인가 DES_SW 의 어느 쪽인가의 논리합 (을)를 취해, DES_HW 하지만 지정되어 있어 게다가 하드웨어가 없는 경우는, 암호화는 소프트웨어로 실행되어 routine는 DESERR_NOHWDEVICE (을)를 돌려줍니다. cbc_crypt() 의 경우, 파라미터 ivec (은)는 최인 작성용의 8 바이트의 초기화 벡터입니다. 이것은 돌아와 때에, 다음의 초기화 벡터로 갱신됩니다.

에러
[DESERR_NONE]
    에러 없음.
[DESERR_NOHWDEVICE]
    암호화 처리는 성공했습니다만, 요구된 하드웨어는 아니고 소프트웨어로 행해졌습니다.
[DESERR_HWERR]
    하드웨어 또는 드라이버로 에러가 발생했습니다.
[DESERR_BADPARAM]
    routine에 잘못한 파라미터가 지정되었습니다.

종료 코드 stat 하지만 주어지면(자), 매크로 DES_FAILED(stat) 하지만 가짜가 되는 것은, 최초의 2 개의 스테이터스에 관해서만입니다.

관련 항목
crypt(3)

제약
이러한 routine는 RPCSRC 4.0 에서는 이용할 수 없습니다. 이 정보는 Secure RPC 로 요구된다 DES 인터페이스의 설명으로서 제공되고 있습니다.