Documentation ¶
Index ¶
- Constants
- func CalculateProofIdentifier(signature []byte) []byte
- func CanonicalSignatureBytes(r, s *big.Int, curve *elliptic.CurveParams) []byte
- func FindKID(protectedHeader *CWTHeader, unprotectedHeader *CWTHeader) (kid []byte, err error)
- func HasEUPrefix(bts []byte) bool
- func MarshalQREncoded(signedCWT *CWT) ([]byte, error)
- func SerializeAndHashForSignature(protectedHeaderCbor, payloadCbor []byte) (hash []byte, err error)
- type CWT
- type CWTHeader
- type CWTPayload
- type DCC
- type DCCName
- type DCCRecovery
- type DCCTest
- type DCCVaccination
- type HealthCertificate
- type RawHealthCertificate
Constants ¶
View Source
const ( COSE_SIGN1_CONTEXT = "Signature1" ALG_ES256 = -7 ALG_PS256 = -37 )
View Source
const ( COSE_SIGN1_TAG = 18 CURRENT_CONTEXT_ID = '1' )
Variables ¶
This section is empty.
Functions ¶
func CalculateProofIdentifier ¶ added in v0.4.2
CalculateProofIdentifier calculates the sha256 digest of the signature, truncated to 128 bits
func CanonicalSignatureBytes ¶ added in v0.4.3
func CanonicalSignatureBytes(r, s *big.Int, curve *elliptic.CurveParams) []byte
func HasEUPrefix ¶
func MarshalQREncoded ¶
Types ¶
type CWT ¶
type CWT struct { Protected []byte Unprotected CWTHeader Payload []byte Signature []byte // contains filtered or unexported fields }
func UnmarshalQREncoded ¶
type CWTPayload ¶
type CWTPayload struct { Issuer string `cbor:"1,keyasint"` ExpirationTime int64 `cbor:"4,keyasint"` IssuedAt int64 `cbor:"6,keyasint"` HCert *RawHealthCertificate `cbor:"-260,keyasint"` }
type DCC ¶
type DCC struct { Version string `cbor:"ver" json:"ver"` DateOfBirth string `cbor:"dob" json:"dob"` Name *DCCName `cbor:"nam" json:"nam"` Vaccinations []*DCCVaccination `cbor:"v,omitempty" json:"v"` Tests []*DCCTest `cbor:"t,omitempty" json:"t"` Recoveries []*DCCRecovery `cbor:"r,omitempty" json:"r"` }
type DCCRecovery ¶
type DCCRecovery struct { DiseaseTargeted string `cbor:"tg" json:"tg"` DateOfFirstPositiveTest string `cbor:"fr" json:"fr"` CountryOfTest string `cbor:"co" json:"co"` CertificateIssuer string `cbor:"is" json:"is"` CertificateValidFrom string `cbor:"df" json:"df"` CertificateValidUntil string `cbor:"du" json:"du"` CertificateIdentifier string `cbor:"ci" json:"ci"` }
type DCCTest ¶
type DCCTest struct { DiseaseTargeted string `cbor:"tg" json:"tg"` TypeOfTest string `cbor:"tt" json:"tt"` TestName string `cbor:"nm,omitempty" json:"nm"` TestNameAndManufacturer string `cbor:"ma,omitempty" json:"ma"` DateTimeOfCollection string `cbor:"sc" json:"sc"` TestResult string `cbor:"tr" json:"tr"` TestingCentre string `cbor:"tc" json:"tc"` CountryOfVaccination string `cbor:"co" json:"co"` CertificateIssuer string `cbor:"is" json:"is"` CertificateIdentifier string `cbor:"ci" json:"ci"` }
type DCCVaccination ¶
type DCCVaccination struct { DiseaseTargeted string `cbor:"tg" json:"tg"` Vaccine string `cbor:"vp" json:"vp"` MedicinalProduct string `cbor:"mp" json:"mp"` Manufacturer string `cbor:"ma" json:"ma"` DoseNumber int `cbor:"dn" json:"dn"` TotalSeriesOfDoses int `cbor:"sd" json:"sd"` DateOfVaccination string `cbor:"dt" json:"dt"` CountryOfVaccination string `cbor:"co" json:"co"` CertificateIssuer string `cbor:"is" json:"is"` CertificateIdentifier string `cbor:"ci" json:"ci"` }
type HealthCertificate ¶
type HealthCertificate struct { CredentialVersion int `json:"credentialVersion"` Issuer string `json:"issuer"` IssuedAt int64 `json:"issuedAt"` ExpirationTime int64 `json:"expirationTime"` KIDB64 string `json:"kid"` DCC *DCC `json:"dcc"` }
func ReadCWT ¶
func ReadCWT(cwt *CWT) (hcert *HealthCertificate, err error)
type RawHealthCertificate ¶
type RawHealthCertificate struct {
// Halt unmarshalling here, so CWT verification can take place first
DCC cbor.RawMessage `cbor:"1,keyasint"`
}
Click to show internal directories.
Click to hide internal directories.