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 키의 유형을 지정합니다. 다음 값 중 하나일 수 있습니다.

의미
BCRYPT_RSAPUBLIC_MAGIC
키는 RSA 공개 키입니다.
BCRYPT_RSAPRIVATE_MAGIC
키는 RSA 프라이빗 키입니다.
BCRYPT_RSAFULLPRIVATE_MAGIC
키는 전체 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

추가 정보

BCRYPT_KEY_BLOB

BCryptExportKey

BCryptImportKey