[완료] openssl api 로 publickey 의 modulus 가져오는데 문제가..

soyeon0618의 이미지

openssl api로 공개 키의 modulus 가져오는 작업을 하고있습니다.

    EVP_PKEY * pkey;
    unsigned int pkeyBufLen;
    BIGNUM *bn_m;
    unsigned char *m_pkey;
    RSA *y;
    BIO * in,*out;
    X509 * openCert;
 
    out = BIO_new_fp(stdout,BIO_NOCLOSE);
    in = BIO_new_file("./SignCert.der","r");
 
    openCert = d2i_X509_bio(in,NULL);
 
    BIO_vfree(in);
 
    pkey = X509_get_pubkey(openCert);
 
    y = pkey->pkey.rsa;
    bn_m = y->n;
 
    pkeyBufLen = BN_num_bytes(bn_m);
    m_pkey = (unsigned char *)malloc(pkeyBufLen *(sizeof(unsigned char)));
    BN_bn2bin(bn_m,m_pkey);

그런데 modulus 의 값이 저 코드로 제가 구했을 때와
openssl x509 -in SignCert.der -inform DER -noout -text
로 보았을 때 다릅니다. (저 명령어를 이용하면 앞에 00이 추가로 붙습니다.)

openssl x509 -in SignCert.der -inform DER -noout -modulus
이 명령어로 하면 추가로 붙는 00이 없구요..

무슨 차이가 있는거죠??

(그리고, 개인키 파일에서 p,q,exponent 등등 구하는데
openssl rsa -in SignCert.key -noout -text
로 정보를 보면, 00이 붙는 경우가 있고 안 붙는 경우가 있던데.. 위의 modulus 와 비슷한 이유에서인가요??)

========================

자릿수 문제였네요 ㅠㅠ;;;
openssl asn1parse -in SignCert.key