Commit 8ffd1b71 authored by garciay's avatar garciay
Browse files

Starting basic certificates typing

parent 2c436ce7
......@@ -11,6 +11,9 @@
*
*/
module TestCodec_Certificates {
// LibCommon
import from LibCommon_BasicTypesAndValues all;
import from LibCommon_DataStrings all;
// LibIts
import from IEEE1609dot2BaseTypes language "ASN.1:1997" all;
......@@ -34,7 +37,150 @@ module TestCodec_Certificates {
signature_ := omit
} // End of template m_etsiTs103097Certificate
testcase tc_Certificate() runs on TCType system TCType {
template (value) IssuerIdentifier m_issuerIdentifier_sha256AndDigest(
in template (value) HashedId8 p_sha256AndDigest
) := {
sha256AndDigest := p_sha256AndDigest
} // End of template m_issuerIdentifier_sha256AndDigest
template (value) IssuerIdentifier m_issuerIdentifier_sha384AndDigest(
in template (value) HashedId8 p_sha384AndDigest
) := {
sha384AndDigest := p_sha384AndDigest
} // End of template m_issuerIdentifier_sha384AndDigest
template (omit) ToBeSignedCertificate m_toBeSignedCertificate(
in template (value) CertificateId p_id,
in template (value) HashedId3 p_cracaId,
in template (value) CrlSeries p_crlSeries,
in template (value) ValidityPeriod p_validityPeriod,
in template (value) SequenceOfPsidSsp p_appPermissions,
in template (value) SequenceOfPsidGroupPermissions p_certIssuePermissions,
in template (value) SequenceOfPsidGroupPermissions p_certRequestPermissions,
in template (value) VerificationKeyIndicator p_verifyKeyIndicator,
in template (omit) GeographicRegion p_region := omit,
in template (omit) SubjectAssurance p_assuranceLevel := omit,
in template (omit) PublicEncryptionKey p_encryptionKey := omit
) := {
id := p_id,
cracaId := p_cracaId,
crlSeries := p_crlSeries,
validityPeriod := p_validityPeriod,
region := p_region,
assuranceLevel := p_assuranceLevel,
appPermissions := p_appPermissions,
certIssuePermissions := p_certIssuePermissions,
certRequestPermissions := p_certRequestPermissions,
canRequestRollover := omit,
encryptionKey := p_encryptionKey,
verifyKeyIndicator := p_verifyKeyIndicator
} // End of template m_toBeSignedCertificate
template (value) ValidityPeriod m_validity_period(
in Time32 p_start_,
in Duration p_duration
) := {
start_ := p_start_,
duration := p_duration
} // End of template m_validity_period
template (omit) PsidSsp m_psidSsp(
in template (value) Psid p_psid,
in template (omit) ServiceSpecificPermissions p_ssp := omit
) := {
psid := p_psid,
ssp := p_ssp
} // End of template m_psidSsp
template (omit) PsidSspRange m_psidSspRange(
in Psid p_psid,
in template (omit) SspRange p_sspRange := omit
) := {
psid := p_psid,
sspRange := p_sspRange
} // End of template m_psidSspRange
template (value) PsidGroupPermissions m_PsidGroupPermissions(
in template (value) SubjectPermissions p_subjectPermissions,
in integer p_minChainLength := 1,
in integer p_chainLengthRange := 0,
in EndEntityType p_eeType := oct2bit('00'O)
) := {
subjectPermissions := p_subjectPermissions,
minChainLength := p_minChainLength,
chainLengthRange := p_chainLengthRange,
eeType := p_eeType
} // End of template m_PsidGroupPermissions
template (value) SubjectPermissions m_subjectPermissions_explicit(
in SequenceOfPsidSspRange p_certIssuePermissions
) := {
explicit := p_certIssuePermissions
} // End of template m_subjectPermissions_explicit
template (value) VerificationKeyIndicator m_verificationKeyIndicator_verificationKey(
in template (value) PublicVerificationKey p_verificationKey
) := {
verificationKey := p_verificationKey
} // End of template m_verificationKeyIndicator_verificationKey
template (value) VerificationKeyIndicator m_verificationKeyIndicator_reconstructionValue(
in template (value) EccP256CurvePoint p_reconstructionValue
) := {
reconstructionValue := p_reconstructionValue
} // End of template m_verificationKeyIndicator_reconstructionValue
template (value) PublicVerificationKey m_publicVerificationKey_ecdsaNistP256(
in template (value) EccP256CurvePoint p_ecdsaNistP256
) := {
ecdsaNistP256 := p_ecdsaNistP256
} // End of template m_publicVerificationKey_ecdsaNistP256
template (value) EccP256CurvePoint m_eccP256CurvePoint_compressed_y_0(
in Oct32 p_compressed_y_0
) := {
compressed_y_0 := p_compressed_y_0
} // End of template m_eccP256CurvePoint_compressed_y_0
testcase tc_certificate_1() runs on TCType system TCType {
var template (value) EtsiTs103097Certificate v_cert;
var HashedId8 v_sha256AndDigest := '0000000000000000'O;
var HashedId3 v_cracaId := '000000'O;
var CrlSeries v_crlSeries := 0;
var SequenceOfPsidSspRange v_certIssuePermissions := { valueof(m_psidSspRange(1)) };
var SequenceOfPsidSspRange v_certRequestPermissions := { valueof(m_psidSspRange(2)) };
var Oct32 v_compressed_y_0 := '0000000000000000000000000000000000000000000000000000000000000000'O;
v_cert := m_etsiTs103097Certificate(
m_issuerIdentifier_sha256AndDigest(v_sha256AndDigest),
m_toBeSignedCertificate(
{ name := "tc_certificate_1" },
v_cracaId,
v_crlSeries,
m_validity_period(0, { milliseconds := 1000 }),
{
m_psidSsp(1),
m_psidSsp(2, { bitmapSsp := '001100110011'O })
},
{
m_PsidGroupPermissions(
m_subjectPermissions_explicit(
v_certIssuePermissions
))
},
{
m_PsidGroupPermissions(
m_subjectPermissions_explicit(
v_certRequestPermissions
))
},
m_verificationKeyIndicator_verificationKey(
m_publicVerificationKey_ecdsaNistP256(
m_eccP256CurvePoint_compressed_y_0(
v_compressed_y_0
)))
)
);
}
} // End of module TestCodec_Certificates
\ No newline at end of file
} // End of module tc_certificate_1
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment