BCRYPT_RSAKEY_BLOB 구조체(bcrypt.h)
BCRYPT_RSAKEY_BLOB 구조는 RSA 공개 키 또는 메모리의 프라이빗 키BLOB에 대한 헤더로 사용됩니다.
구문
typedef struct _BCRYPT_RSAKEY_BLOB {
ULONG Magic;
ULONG BitLength;
ULONG cbPublicExp;
ULONG cbModulus;
ULONG cbPrime1;
ULONG cbPrime2;
} BCRYPT_RSAKEY_BLOB;
멤버
Magic
이 BLOB이 나타내는 RSA 키의 유형을 지정합니다. 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
키는 RSA 공개 키입니다. |
|
키는 RSA 프라이빗 키입니다. |
|
키는 전체 RSA 프라이빗 키입니다. |
BitLength
키의 크기(비트 단위)입니다.
cbPublicExp
키 지수의 크기(바이트)입니다. Windows 10 버전 1903을 기준으로 (2^64 - 1) 보다 큰 공용 지수는 더 이상 지원되지 않습니다.
cbModulus
키의 모듈러스 크기(바이트)입니다.
cbPrime1
키의 첫 번째 소수 크기(바이트)입니다. 프라이빗 키 BLOB에만 사용됩니다.
cbPrime2
키의 두 번째 소수 크기(바이트)입니다. 프라이빗 키 BLOB에만 사용됩니다.
설명
이 구조체는 더 큰 버퍼의 헤더로 사용됩니다. RSA 공개 키 BLOB (BCRYPT_RSAPUBLIC_BLOB)은 연속 메모리에서 다음과 같은 형식을 가집니다. 구조에 따른 모든 숫자는 big-endian 형식입니다.
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
RSA 프라이빗 키 BLOB (BCRYPT_RSAPRIVATE_BLOB)은 연속 메모리에서 다음과 같은 형식을 가집니다. 구조에 따른 모든 숫자는 big-endian 형식입니다.
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
Prime1[cbPrime1] // Big-endian.
Prime2[cbPrime2] // Big-endian.
전체 RSA 프라이빗 키 BLOB(BCRYPT_RSAFULLPRIVATE_BLOB)은 연속 메모리에서 다음과 같은 형식을 가집니다. 구조에 따른 모든 숫자는 big-endian 형식입니다.
Windows의 다른 버전에서 PrivateExponent가 BCryptExportKey 호출에서 사용하는 값은 cbModulus 바이트에서 PrivateExponent의 여러 수학적으로 동등한 표현이 있기 때문에 다를 수 있습니다. 특히 일부 버전에서는 PrivateExponent가 모듈로(Prime1 - 1) * (Prime2 - 1)로 내보내지고 다른 버전에서는 modulo LeastCommonMultiple(Prime1 - 1, Prime2 - 1)을 내보냅니다.
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
Prime1[cbPrime1] // Big-endian.
Prime2[cbPrime2] // Big-endian.
Exponent1[cbPrime1] // Big-endian.
Exponent2[cbPrime2] // Big-endian.
Coefficient[cbPrime1] // Big-endian.
PrivateExponent[cbModulus] // Big-endian.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
머리글 | bcrypt.h |