class OpenSSL::Timestamp::TokenInfo
Eine unveränderliche und schreibgeschützte Darstellung der Informationen eines Zeitstempel-Tokens aus einer Response.
Öffentliche Klassenmethoden
Source
static VALUE
ossl_ts_token_info_initialize(VALUE self, VALUE der)
{
TS_TST_INFO *info = DATA_PTR(self);
BIO *in;
der = ossl_to_der_if_possible(der);
in = ossl_obj2bio(&der);
info = d2i_TS_TST_INFO_bio(in, &info);
BIO_free(in);
if (!info) {
DATA_PTR(self) = NULL;
ossl_raise(eTimestampError, "Error when decoding the timestamp token info");
}
DATA_PTR(self) = info;
return self;
}
Öffentliche Instanzmethoden
Source
static VALUE
ossl_ts_token_info_get_algorithm(VALUE self)
{
TS_TST_INFO *info;
TS_MSG_IMPRINT *mi;
X509_ALGOR *algo;
const ASN1_OBJECT *obj;
GetTSTokenInfo(self, info);
mi = TS_TST_INFO_get_msg_imprint(info);
algo = TS_MSG_IMPRINT_get_algo(mi);
X509_ALGOR_get0(&obj, NULL, NULL, algo);
return ossl_asn1obj_to_string(obj);
}
Gibt den „Kurznamen“ des Objektidentifikators zurück, der den Algorithmus darstellt, der zum Ableiten des Hashs des Message Imprint verwendet wurde. Für gültige Zeitstempel ist dies derselbe Wert, der bereits in der Request angegeben wurde. Wenn der Status GRANTED oder GRANTED_WITH_MODS ist, ist dieser Wert niemals nil.
Beispiel
algo = token_info.algorithm puts algo -> "SHA1"
Source
static VALUE
ossl_ts_token_info_get_gen_time(VALUE self)
{
TS_TST_INFO *info;
GetTSTokenInfo(self, info);
return asn1time_to_time(TS_TST_INFO_get_time(info));
}
Gibt die Uhrzeit zurück, zu der dieser Zeitstempel-Token erstellt wurde. Wenn der Status GRANTED oder GRANTED_WITH_MODS ist, ist dieser Wert niemals nil.
Source
static VALUE
ossl_ts_token_info_get_msg_imprint(VALUE self)
{
TS_TST_INFO *info;
TS_MSG_IMPRINT *mi;
ASN1_OCTET_STRING *hashed_msg;
VALUE ret;
GetTSTokenInfo(self, info);
mi = TS_TST_INFO_get_msg_imprint(info);
hashed_msg = TS_MSG_IMPRINT_get_msg(mi);
ret = asn1str_to_str(hashed_msg);
return ret;
}
Source
static VALUE
ossl_ts_token_info_get_nonce(VALUE self)
{
TS_TST_INFO *info;
const ASN1_INTEGER *nonce;
GetTSTokenInfo(self, info);
if (!(nonce = TS_TST_INFO_get_nonce(info)))
return Qnil;
return asn1integer_to_num(nonce);
}
Wenn der Zeitstempel-Token gültig ist, enthält dieses Feld denselben Nonce, der dem Zeitstempenserver in der ursprünglichen Request übergeben wurde.
Source
static VALUE
ossl_ts_token_info_get_ordering(VALUE self)
{
TS_TST_INFO *info;
GetTSTokenInfo(self, info);
return TS_TST_INFO_get_ordering(info) ? Qtrue : Qfalse;
}
Wenn das Feld `ordering` fehlt oder vorhanden und auf `false` gesetzt ist, gibt das Feld `genTime` nur die Uhrzeit an, zu der der Zeitstempel-Token vom TSA erstellt wurde. In diesem Fall ist die Reihenfolge von Zeitstempel-Tokens, die von demselben oder von verschiedenen TSAs ausgestellt wurden, nur dann möglich, wenn die Differenz zwischen der `genTime` des ersten Zeitstempel-Tokens und der `genTime` des zweiten Zeitstempel-Tokens größer ist als die Summe der Genauigkeiten der `genTime` für jeden Zeitstempel-Token.
Wenn das Feld `ordering` vorhanden und auf `true` gesetzt ist, kann jeder Zeitstempel-Token vom selben TSA immer anhand des Feldes `genTime` geordnet werden, unabhängig von der `genTime`-Genauigkeit.
Source
static VALUE
ossl_ts_token_info_get_policy_id(VALUE self)
{
TS_TST_INFO *info;
GetTSTokenInfo(self, info);
return ossl_asn1obj_to_string(TS_TST_INFO_get_policy_id(info));
}
Gibt den Zeitstempel-Richtlinien-Objektidentifikator der Richtlinie zurück, unter der dieser Zeitstempel erstellt wurde. Wenn der Status GRANTED oder GRANTED_WITH_MODS ist, ist dieser Wert niemals nil.
Beispiel
id = token_info.policy_id puts id -> "1.2.3.4.5"
Source
static VALUE
ossl_ts_token_info_get_serial_number(VALUE self)
{
TS_TST_INFO *info;
GetTSTokenInfo(self, info);
return asn1integer_to_num(TS_TST_INFO_get_serial(info));
}
Gibt die Seriennummer des Zeitstempel-Tokens zurück. Dieser Wert darf niemals derselbe für zwei Zeitstempel-Tokens sein, die von einer dedizierten Zeitstempelautorität ausgestellt wurden. Wenn der Status GRANTED oder GRANTED_WITH_MODS ist, ist dieser Wert niemals nil.
Source
static VALUE
ossl_ts_token_info_to_der(VALUE self)
{
TS_TST_INFO *info;
GetTSTokenInfo(self, info);
return asn1_to_der((void *)info, (int (*)(void *, unsigned char **))i2d_TS_TST_INFO);
}
Gibt das TokenInfo in DER-kodierter Form zurück.
Source
static VALUE
ossl_ts_token_info_to_text(VALUE self)
{
TS_TST_INFO *info;
BIO *out;
GetTSTokenInfo(self, info);
out = BIO_new(BIO_s_mem());
if (!out) ossl_raise(eTimestampError, NULL);
if (!TS_TST_INFO_print_bio(out, info)) {
BIO_free(out);
ossl_raise(eTimestampError, NULL);
}
return ossl_membio2str(out);
}
Source
static VALUE
ossl_ts_token_info_get_version(VALUE self)
{
TS_TST_INFO *info;
GetTSTokenInfo(self, info);
return LONG2NUM(TS_TST_INFO_get_version(info));
}
Gibt die Versionsnummer der Token-Informationen zurück. Bei konformen Servern sollte dieser Wert `1` sein, wenn er vorhanden ist. Wenn der Status GRANTED oder GRANTED_WITH_MODS ist.