2009-07-09 5 views
2

pubkey 파일 유형 검색 : 약 1024 비트 (계수) RSA 내용에 대한 다음과 같은 구조를 가지고 나는 RSA의 pubkey.dat (그것이 무엇인지 거의 확실한)를 가지고

  • ASN1 정수의

    • ASN1 정수

    태그가 같은 (지수) 256 바이트 (서명)의

  • 한방울 정도 "---- --- 시작". 순수한 16 진수 값.

    DER/PEM/etc와 같은 형식을 식별 할 수있는 방법이 있으므로 파이썬 암호화 라이브러리 나 crypto ++로 C++에서 열 수 있습니까?

    (아니면 제가 확인을위한 공개 표준 구조 이름과 일치하는 경우) M2crypt를로드 할 수 없기 때문에

    가되지 PEM 것 같다입니다.

    미리 감사드립니다.

  • 답변

    2

    PEM 인코딩은 필수 형식은 다음과 같습니다

    -----BEGIN typeName----- 
    base64 of DER value 
    -----END typeName----- 
    

    경우, 공개 키 즉, 다음과 같은 정규 표현식으로 확인하는 것은 매우 간단하므로 TYPENAME = "PUBLIC KEY"(AFAIR)에 대한 :

    /-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----/ 
    

    PEM이 아닌 경우 일반적으로 DER입니다.

    ASN.1 SEQUENCE의 DER 표현은 항상 0x30으로 시작하므로 대개 내가 알고있는 DER 또는 PEM 스트림을 디코드해야 할 때 ASN.1 SEQUENCE (대부분의 복잡한 값은 SEQUENCE, 어쨌든) 첫 번째 바이트를 확인합니다 : 0x30이면 DER로 디코딩하고, 그렇지 않으면 PEM으로 디코딩합니다.

    my very own opensource ASN.1 parser을 사용하여 ASN.1 데이터를 신속하게 확인할 수 있습니다 (모든 클라이언트 측 자바 스크립트이므로 데이터가 표시되지 않습니다).