2011-02-03 5 views
1

주어진 CSR을 매우 잘 디코딩하는 Liping Share ASN1 Editor을 사용하여 .net (C#)으로 프로그램을 작성하고 있습니다.
내 문제는 : 주어진 CSR의 비트 크기는 어떻게 얻습니까? (1024 이상인지 테스트하고 싶습니다.)
.net X509Certificate 클래스를 이미 사용해 보았습니다.하지만 인증서가 아닌 CSR에서만 작동합니다.
자바 클래스를 사용하거나 CSR 디코더가 포함 된 웹 사이드를 파싱 할 가능성은 없습니다. (비록 내가 이미 그 문제를 다르게 해결하는 것보다 훨씬 쉬울 것이라고 생각했지만)주어진 CSR의 keysize를 비트 단위로 가져 오는 방법은 무엇입니까?

어쩌면 해결책은 매우 간단하고 나는 그것을 얻지 못할 수도있다. 그러나 누군가가 나에게 조언을 해줄 수 있다면, 나는 정말로 감사하겠다! (지난 2 일 동안 너무 많은 구글 !!)

답변

0

그것은 꽤 단순한 것처럼 보인다 : CSR 그 자체의 처음 몇 글자를 보라. MIIC으로 시작하면 512 비트이고 MIID는 1024 비트입니다. 여기에 간단한 뷰의 :

 
Beginning Number of 
Characters bits in CSR 
---------- ----------- 
MIIC  512-bits 
MIID  1024-bits 
MIIE  2048-bits 
MIIG  4096-bits 
MIIK  8192-bits 
MIIS  16384-bits 

나는이 100 % 신뢰할 수 있음 (스펙 문서의 용어로) 확인하기 위해 확보하지 않은,하지만 내가 '예 기반 연구 지원, 진정한 보유 보인다 ve done (on several sites을 찾았고, 개인적인 경험으로 인해 CSR의 숫자가 다름).

+0

이 정보가 정확하지 않다고 생각합니다. 나는 공개 키 크기가 2048 인 CSR을 가지고 있으며 MIICYTCC –

1

저는 C#에 익숙하지 않지만 PHP에서 CSR의 공개 키를 먼저 얻고 공개 키의 keysize를 확인해야합니다.

openssl_pkey_get_details(openssl_csr_get_public_key($your_csr)); 

반환 값은 비트 크기를 포함한 공개 키 정보의 배열입니다.

참고 : JSmitty에서 언급 한 방법이 신뢰할 수 없다는 것을 많은 테스트와 광범위한 연구에서 발견했습니다.