RSA Pubkey 파일 유형 감지
-
12-09-2019 - |
문제
내용에 다음과 같은 구조를 갖는 RSA PubKey.dat (거의 분명한 점)을 얻었습니다.
- 약 1024 비트의 ASN1 정수 (모듈러스)
- ASN1 정수 (지수)
- 256 바이트 (서명)의 블로브
"---- 시작 ---"이상과 같은 태그가 없습니다. 순수한 16 진수 값.
der/pem/etc 인 경우 형식을 식별하는 방법이 있으므로 C ++에서 Python Crypto 라이브러리 또는 Crypto ++로 열 수 있습니까?
(또는 확인할 공개 표준 구조 이름과 일치하는 경우)
m2crypt가로드 할 수 없기 때문에 PEM이 아닌 것 같습니다.
미리 감사드립니다.
해결책
Pem-Encoding에는 필수 형식이 있습니다.
-----BEGIN typeName-----
base64 of DER value
-----END typeName-----
공개 키의 경우 typename = "Public Key"(AFAIR)를 위해 다음과 같은 정규 표현식으로 확인하기가 매우 쉽습니다.
/-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----/
PEM이 아니라면 보통 평범한 Der입니다.
ASN.1 시퀀스의 DER 표현은 항상 0x30으로 시작하므로 일반적으로 ASN.1 시퀀스 (대부분의 복잡한 값은 시퀀스입니다). 첫 번째 바이트 : 0x30이면 Der로 디코딩하고 그렇지 않으면 PEM으로 디코딩합니다.
ASN.1 데이터를 빠르게 사용하여 확인할 수 있습니다 내 자신의 OpenSource ASN.1 파서 (모든 클라이언트 측 JavaScript이므로 데이터가 표시되지 않습니다).
제휴하지 않습니다 StackOverflow