Feature #7181 » certid_methods_v2.patch
| ext/openssl/ossl_ocsp.c | ||
|---|---|---|
|
return asn1integer_to_num(id->serialNumber);
|
||
|
}
|
||
|
static VALUE
|
||
|
ossl_ocspcid_get_issuer_name_hash(VALUE self)
|
||
|
{
|
||
|
OCSP_CERTID *id;
|
||
|
BIO *out;
|
||
|
VALUE str;
|
||
|
GetOCSPCertId(self, id);
|
||
|
if (!(out = BIO_new(BIO_s_mem())))
|
||
|
ossl_raise(eOCSPError, NULL);
|
||
|
i2a_ASN1_STRING(out, id->issuerNameHash, V_ASN1_OCTET_STRING);
|
||
|
str = ossl_membio2str(out);
|
||
|
return str;
|
||
|
}
|
||
|
static VALUE
|
||
|
ossl_ocspcid_get_issuer_key_hash(VALUE self)
|
||
|
{
|
||
|
OCSP_CERTID *id;
|
||
|
BIO *out;
|
||
|
VALUE str;
|
||
|
GetOCSPCertId(self, id);
|
||
|
if (!(out = BIO_new(BIO_s_mem())))
|
||
|
ossl_raise(eOCSPError, NULL);
|
||
|
i2a_ASN1_STRING(out, id->issuerKeyHash, V_ASN1_OCTET_STRING);
|
||
|
str = ossl_membio2str(out);
|
||
|
return str;
|
||
|
}
|
||
|
static VALUE
|
||
|
ossl_ocspcid_get_signature_algorithm(VALUE self)
|
||
|
{
|
||
|
OCSP_CERTID *id;
|
||
|
BIO *out;
|
||
|
VALUE str;
|
||
|
GetOCSPCertId(self, id);
|
||
|
if (!(out = BIO_new(BIO_s_mem())))
|
||
|
ossl_raise(eOCSPError, NULL);
|
||
|
if (!i2a_ASN1_OBJECT(out, id->hashAlgorithm->algorithm)) {
|
||
|
BIO_free(out);
|
||
|
ossl_raise(eOCSPError, NULL);
|
||
|
}
|
||
|
str = ossl_membio2str(out);
|
||
|
}
|
||
|
void
|
||
|
Init_ossl_ocsp()
|
||
|
{
|
||
| ... | ... | |
|
rb_define_method(cOCSPCertId, "cmp", ossl_ocspcid_cmp, 1);
|
||
|
rb_define_method(cOCSPCertId, "cmp_issuer", ossl_ocspcid_cmp_issuer, 1);
|
||
|
rb_define_method(cOCSPCertId, "serial", ossl_ocspcid_get_serial, 0);
|
||
|
rb_define_method(cOCSPCertId, "issuer_name_hash", ossl_ocspcid_get_issuer_name_hash, 0);
|
||
|
rb_define_method(cOCSPCertId, "issuer_key_hash", ossl_ocspcid_get_issuer_key_hash, 0);
|
||
|
rb_define_method(cOCSPCertId, "signature_algorithm", ossl_ocspcid_get_signature_algorithm, 0);
|
||
|
#define DefOCSPConst(x) rb_define_const(mOCSP, #x, INT2NUM(OCSP_##x))
|
||
| test/openssl/test_ocsp.rb | ||
|---|---|---|
|
assert_equal @cert.serial, cid.serial
|
||
|
end
|
||
|
def test_certificate_id_issuer_name_hash
|
||
|
cid = OpenSSL::OCSP::CertificateId.new(@cert, @ca_cert)
|
||
|
assert_equal "D91F736AC4DC3242F0FB9B77A3149BD83C5C43D0", cid.issuer_name_hash
|
||
|
end
|
||
|
def test_certificate_id_issuer_key_hash
|
||
|
cid = OpenSSL::OCSP::CertificateId.new(@cert, @ca_cert)
|
||
|
assert_equal "D1FEF9FBF8AE1BC160CBFA03E2596DD873089213", cid.issuer_key_hash
|
||
|
end
|
||
|
def test_new_certificate_id_with_digest
|
||
|
cid = OpenSSL::OCSP::CertificateId.new(@cert, @ca_cert, OpenSSL::Digest::SHA256.new)
|
||
|
assert_kind_of OpenSSL::OCSP::CertificateId, cid
|
||
|
assert_equal @cert.serial, cid.serial
|
||
|
end if defined?(OpenSSL::Digest::SHA256)
|
||
|
def test_certificate_id_signature_algorithm
|
||
|
cid_sha1 = OpenSSL::OCSP::CertificateId.new(@cert, @ca_cert, OpenSSL::Digest::SHA1.new)
|
||
|
cid_md5 = OpenSSL::OCSP::CertificateId.new(@cert, @ca_cert, OpenSSL::Digest::MD5.new)
|
||
|
assert_equal cid_sha1.signature_algorithm, "sha1"
|
||
|
assert_equal cid_md5.signature_algorithm, "md5"
|
||
|
end
|
||
|
def test_new_ocsp_request
|
||
|
request = OpenSSL::OCSP::Request.new
|
||
|
cid = OpenSSL::OCSP::CertificateId.new(@cert, @ca_cert, OpenSSL::Digest::SHA1.new)
|
||
- « Previous
- 1
- 2
- Next »