2017-11-15 19 views
0

X509-issuer-string을 구문 분석하려고합니다. OID로 코딩 된 일부 속성을 알 수없는 이유로.OID : 값이 16 진수 코드

예.

CN=TEST,DN=my.test.com,O=My State,C=MS,2.5.4.97=#130e414141505050 

내 질문에 대한 마지막 질문입니다. 나는 OID와 이름이 지어져 있지 않다는 것을 완벽하게 잘 알고있다.

그러나 값을 해석하는 방법을 알지 못합니다. 문자 당 2 자리 16 진수가 될 것으로 기대합니다. 그러나 처음 4 자리 숫자는 어떻습니까? 그것은 약간의 통제 문자 일 것입니다.

414141505050은 내가 예상 한 값입니다 (AAAPPP).

그러나 처음 4 바이트 (130e)의 의미는 무엇입니까 ??

OID에 대한 16 진수 값의 코딩 정의를 찾지 못했습니다.

개인 정보 보호를 위해 값을 위장하여 체크섬 형식 인 경우 손상 될 수 있습니다.

도움 주셔서 감사합니다.

+0

발급자 값의 정확한 이진 복사본을 게시 할 수 있다면 더 좋을 것입니다. – Crypt32

답변

2

2.5.4.97은 OpenSSL이 OID 대 이름 맵에 OID로 인쇄하지 않기 때문에 organizationIdentifier (http://oid-info.com/get/2.5.4.97)의 OID입니다.

하나는 #이 "원시 데이터입니다 (16 진수로 인코딩 됨)"라는 OpenSSL-ese라고 가정합니다. 원시 값은 DER로 인코딩 된 값입니다. 0x13은 이것이 (원시 인코딩) 인쇄 가능 문자열임을 나타냅니다. 다음 바이트 (0x0E)는 14 바이트 길이라고합니다.

414141505050 길이가 6 바이트이기 때문에 처음에는 더 긴 값을 사용한다고 가정합니다.

+0

꽤 합법적 인 것 같습니다. – Crypt32

+0

고마워요! 어디서나 문서화되어 있는지 물어봐도 될까요 ?? – chris01

+0

https://www.openssl.org/docs/man1.0.2/crypto/ASN1_STRING_print_ex.html은 \ # 인쇄 양식 (덤프라고 함)에 대해 이야기하고 DUMP_DER 플래그가 설정된 것처럼 보입니다. 그런 다음 [IETF RFC 3280] (https://tools.ietf.org/html/rfc3280) (인증서), [ITU-T-REC X.690] (https://www.itu.int/)을 이해해야합니다. PDF-E & type = items) (BER/DER 인코딩) 및 [ITU-T-REC X.680] (https :// dologin_pub.asp? lang = e & id = T- REC-X.690-201508- /www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-X.680-201508-I!!PDF-E&type=items) (ASN.1 언어). 다 거기에있어, 그냥 ... 퍼져 나간다. – bartonjs