73 lines
1.6 KiB
Plaintext
73 lines
1.6 KiB
Plaintext
note
|
|
description: "x509v3 TBSCertificate sequence"
|
|
author: "Colin LeMahieu"
|
|
date: "$Date$"
|
|
revision: "$Revision$"
|
|
quote: "Democracy is a pathetic belief in the collective wisdom of individual ignorance. - H.L. Mencken"
|
|
|
|
class
|
|
TBS_CERTIFICATE
|
|
|
|
inherit
|
|
DER_ENCODABLE
|
|
|
|
create
|
|
make
|
|
|
|
feature
|
|
make ( version_a: INTEGER_32 serial_number_a: INTEGER_X signature_a: ALGORITHM_IDENTIFIER issuer_a: NAME validity_a: VALIDITY
|
|
subject_a: NAME subject_public_key_info_a: SUBJECT_PUBLIC_KEY_INFO issuer_unique_id_a: SPECIAL [NATURAL_8]
|
|
subject_unique_id_a: SPECIAL [NATURAL_8] extensions_a: LIST [EXTENSION])
|
|
require
|
|
|
|
do
|
|
version := version_a
|
|
serial_number := serial_number_a
|
|
signature := signature_a
|
|
issuer := issuer_a
|
|
validity := validity_a
|
|
subject := subject_a
|
|
subject_public_key_info := subject_public_key_info_a
|
|
issuer_unique_id := issuer_unique_id_a
|
|
subject_unique_id := subject_unique_id_a
|
|
extensions := extensions_a
|
|
end
|
|
|
|
feature
|
|
der_encode (target: DER_OCTET_SINK)
|
|
do
|
|
|
|
end
|
|
|
|
feature
|
|
version: INTEGER_32
|
|
serial_number: INTEGER_X
|
|
signature: ALGORITHM_IDENTIFIER
|
|
issuer: NAME
|
|
validity: VALIDITY
|
|
subject: NAME
|
|
subject_public_key_info: SUBJECT_PUBLIC_KEY_INFO
|
|
issuer_unique_id: SPECIAL [NATURAL_8]
|
|
subject_unique_id: SPECIAL [NATURAL_8]
|
|
extensions: LIST [EXTENSION]
|
|
|
|
feature
|
|
valid_version (in: INTEGER_32): BOOLEAN
|
|
do
|
|
result := in = 2
|
|
ensure
|
|
result = (in = 2)
|
|
end
|
|
|
|
valid_serial_number (in: INTEGER_X): BOOLEAN
|
|
do
|
|
result := (in >= in.one) and in.bits <= 20 * 8
|
|
ensure
|
|
result = ((in >= in.one) and in.bits <= 20 * 8)
|
|
end
|
|
|
|
invariant
|
|
valid_version (version)
|
|
valid_serial_number (serial_number)
|
|
end
|