crypt, encrypt 또는 setkey 서브루틴

용도

데이터를 암호화하거나 복호화합니다.

라이브러리

표준 C 라이브러리(libc.a)

구문

char *crypt (PW, Salt)
const char * PW, * Salt;
void encrypt (Block, EdFlag)
char Block[64];
int EdFlag;
void setkey (Key)
const char * Key;

설명

cryptencrypt 서브루틴은 데이터를 암호화하거나 암호 해독합니다. crypt 서브루틴은 제공된 PW 매개변수를 사용하여 고정 데이터 배열의 단방향 암호화를 수행합니다. 서브루틴은 Salt 매개변수를 사용하여 암호화 알고리즘을 변경합니다.

encrypt 서브루틴은 setkey 서브루틴에 대한 이전 호출에서 제공한 키를 사용하여 Block 매개변수에 제공된 데이터를 암호화하거나 암호 해독합니다. 입력의 Block 매개변수에 있는 데이터는 64자의 배열이어야 합니다. 각 문자는 char 0또는 char 1이어야 합니다.

cryptlibc.a 의 함수를 정적으로 바인드해야 하는 경우 다음을 수행하십시오.

  1. 파일을 작성하고 다음을 추가하십시오.
    #!
    ___setkey
    ___encrypt
    ___crypt
  2. 링크를 수행하십시오.
  3. make 파일에 다음을 추가하십시오.
    -bI:YourFileName
    여기서 YourFileName 1단계에서 만든 파일의 이름입니다. 다음과 같이 표시되어야 합니다.
    LDFLAGS=bnoautoimp -bI:/lib/syscalls.exp -bI:YourFileName -lc

이러한 서브루틴은 UNIX 시스템 구현과의 호환성을 위해 제공됩니다.

매개변수

항목 설명
블록 값 (char) 0및 (char) 1을 포함하는 64자배열을 식별합니다. 리턴 시 이 버퍼에는 암호화되거나 복호화된 데이터가 포함됩니다.
EdFlag 서브루틴이 데이터를 암호화하거나 암호 해독하는지 여부를 판별합니다. 이 매개변수가 0이면 데이터가 암호화됩니다. 이 매개변수가 0이 아닌 값이면 데이터가 복호화됩니다. /usr/lib/libdes 또는 /usr/lib/libdes_64 파일이 존재하지 않고 EdFlag 매개변수가 0이 아닌 값으로 설정된 경우, encrypt 서브루틴은 ENOSYS 오류 코드를 리턴합니다. /usr/lib/libdes/usr/lib/libdes_64 파일은 AIX® 확장 팩에 있는 des 파일 세트의 일부입니다.
const char 데이터 유형으로 0및 1캐스트의 64요소 배열을 지정합니다. Key 매개변수는 데이터를 암호화하거나 복호화하는 데 사용됩니다.
PW 암호화할 문자열을 지정합니다.
솔트 PW 매개변수가 리턴된 출력 문자열을 생성하기 위해 적용하는 알고리즘을 판별합니다. 왼쪽 중괄호 ({) 가 Salt 매개변수가 지정하는 값의 첫 번째 문자가 아닌 경우 서브루틴은 DES (Data Encryption Standard) 알고리즘을 사용합니다. DES 알고리즘의 경우, Salt 매개변수를 사용하여 4096방법 중 하나로 해싱 알고리즘을 변경하십시오. Salt 매개변수는 다음 문자 유형의 2자문자열이어야 합니다.
A-Z
대문자 알파벳 문자
a-z
소문자 영문자
0 - 9
숫자
.
기간
/
슬래시
왼쪽 중괄호 ({) 가 Salt 매개변수가 지정하는 값의 첫 번째 문자인 경우, 로드 가능한 비밀번호 알고리즘 (LPA) 은 중괄호 ({}) 내에 지정된 이름을 사용합니다. 일련의 salt 문자는 LPA 이름 뒤에 오며 달러 부호 ($) 로 끝납니다. salt 문자의 길이는 지정된 LPA에 따라 다릅니다. 다음 예제는 Salt 매개변수가 지정하는 SMD5 LPA에 대해 가능한 값을 표시합니다.
{SMD5}JVDbGx8K$

리턴 값

crypt 서브루틴은 암호화된 암호에 대한 포인터를 리턴합니다. 이 포인터가 표시하는 정적 영역은 후속 호출에 의해 겹쳐쓰여질 수 있습니다.

crypt 서브루틴이 실패하면 널 포인터가 리턴되고 errno 전역 변수가 오류를 표시하도록 설정됩니다.

오류 코드

encrypt 서브루틴은 다음 오류 코드를 리턴합니다.

항목 설명
엔오SYS (ENOSYS) encrypt 서브루틴은 0이 아닌 값으로 설정된 EdFlag 매개변수를 사용하여 호출되었습니다. 또한 /usr/lib/libdes 또는 /usr/lib/libdes_64 파일이 존재하지 않습니다. /usr/lib/libdes/usr/lib/libdes_64 파일은 AIX 확장 팩에 있는 des 파일 세트의 일부입니다.