OpenSSL::PKCS7::SignerInfo
class OpenSSL::PKCS7::SignerInfo
父类:Object
公共类方法
新(p1,p2,p3)显示来源
static VALUE
ossl_pkcs7si_initialize(VALUE self, VALUE cert, VALUE key, VALUE digest)
{
PKCS7_SIGNER_INFO *p7si;
EVP_PKEY *pkey;
X509 *x509;
const EVP_MD *md;
pkey = GetPrivPKeyPtr(key /* NO NEED TO DUP */
x509 = GetX509CertPtr(cert /* NO NEED TO DUP */
md = GetDigestPtr(digest
GetPKCS7si(self, p7si
if (!(PKCS7_SIGNER_INFO_set(p7si, x509, pkey, (EVP_MD*)md))) {
ossl_raise(ePKCS7Error, NULL
}
return self;
}
公共实例方法
issuer()显示源
static VALUE
ossl_pkcs7si_get_issuer(VALUE self)
{
PKCS7_SIGNER_INFO *p7si;
GetPKCS7si(self, p7si
return ossl_x509name_new(p7si->issuer_and_serial->issuer
}
另外别名为:名称
name()
发行人的别名
serial()显示源文件
static VALUE
ossl_pkcs7si_get_serial(VALUE self)
{
PKCS7_SIGNER_INFO *p7si;
GetPKCS7si(self, p7si
return asn1integer_to_num(p7si->issuer_and_serial->serial
}
signed_time()显示源文件
static VALUE
ossl_pkcs7si_get_signed_time(VALUE self)
{
PKCS7_SIGNER_INFO *p7si;
ASN1_TYPE *asn1obj;
GetPKCS7si(self, p7si
if (!(asn1obj = PKCS7_get_signed_attribute(p7si, NID_pkcs9_signingTime))) {
ossl_raise(ePKCS7Error, NULL
}
if (asn1obj->type == V_ASN1_UTCTIME) {
return asn1time_to_time(asn1obj->value.utctime
}
/*
* OR
* ossl_raise(ePKCS7Error, "..."
* ?
*/
return Qnil;
}