Encrypted structures are used (and decrypted) by Relying Parties to identify a user using his identity or pseudonym.Usage (transformation and decryption)
Important update
The structures documented on this page are part of a planned change and not yet availble in a production environment. Existing structures (production) are documented here: Encrypted structures.
More information regarding this change:
Encrypted Identity or Pseudonym
An Encrypted Identity or Pseudonym consists of 3 points on an elliptic curve. The notation for a complete Encrypted Identity and an Encrypted Pseudonym is as follows:
EncryptedIdentity ::= SEQUENCE { notationIdentifier OBJECT IDENTIFIER (id-BSNk-encrypted-identity), schemeVersion INTEGER, schemeKeySetVersion INTEGER, creator IA5String, recipient IA5String, recipientKeySetVersion INTEGER, points SEQUENCE (SIZE (3)) OF ECPoint } EncryptedPseudonym ::= SEQUENCE { notationIdentifier OBJECT IDENTIFIER (id-BSNk-encrypted-pseudonym), schemeVersion INTEGER, schemeKeySetVersion INTEGER, creator IA5String, recipient IA5String, recipientKeySetVersion INTEGER, type INTEGER, points SEQUENCE (SIZE (3)) OF ECPoint, diversifier [0] Diversifier OPTIONAL } SignedEncryptedIdentity-v2 ::= SEQUENCE { notationIdentifier OBJECT IDENTIFIER (id-BSNk-encrypted-identity-ecsdsa-signed-v2), signedEI SEQUENCE { encryptedIdentity EncryptedIdentity, auditElement OCTET STRING, issuanceDate IA5String, -- IA5STRING "20190401" (=month: -> squashed to first day of month) extraElements [2] ExtraElements OPTIONAL }, signatureValue EC-SDSA-Signature } SignedEncryptedPseudonym-v2 ::= SEQUENCE { notationIdentifier OBJECT IDENTIFIER (id-BSNk-encrypted-pseudonym-ecsdsa-signed-v2), signedEP SEQUENCE { encryptedPseudonym EncryptedPseudonym, auditElement OCTET STRING, issuanceDate IA5String, -- IA5STRING "20190401" (=month: -> squashed to first day of month) extraElements [2] ExtraElements OPTIONAL }, signatureValue EC-SDSA-Signature } DirectEncryptedPseudonym ::= SEQUENCE { notationIdentifier OBJECT IDENTIFIER (id-BSNk-encrypted-direct-pseudonym), schemeVersion INTEGER, schemeKeySetVersion INTEGER, creator IA5String, recipient IA5String, recipientKeySetVersion INTEGER, type INTEGER, points SEQUENCE (SIZE (3)) OF ECPoint, diversifier [0] Diversifier OPTIONAL, authorizedParty [1] IA5String OPTIONAL } SignedDirectEncryptedPseudonym-v2 ::= SEQUENCE { notationIdentifier OBJECT IDENTIFIER (id-BSNk-encrypted-direct-pseudonym-signed-v2), signedDEP SEQUENCE { directEncryptedPseudonym DirectEncryptedPseudonym, auditElement OCTET STRING, signingKeyVersion INTEGER, issuanceDate IA5String, -- IA5STRING "20190401" (=month: -> squashed to first day of month) extraElements [2] ExtraElements OPTIONAL }, signatureValue ECDSA-Signature } DirectEncryptedIdentity-v2 ::= SEQUENCE { notationIdentifier OBJECT IDENTIFIER (id-BSNk-encrypted-direct-identity-v2), schemeVersion INTEGER, schemeKeySetVersion INTEGER, creator IA5String, recipient IA5String, recipientKeySetVersion INTEGER, points SEQUENCE (SIZE (3)) OF ECPoint, authorizedParty [1] IA5String } SignedDirectEncryptedIdentity-v2 ::= SEQUENCE { notationIdentifier OBJECT IDENTIFIER (id-BSNk-encrypted-direct-identity-signed-v2), signedDEI SEQUENCE { directEncryptedIdentity DirectEncryptedIdentity-v2, auditElement OCTET STRING, signingKeyVersion INTEGER, issuanceDate IA5String, -- IA5STRING "20190401" (=month: -> squashed to first day of month) extraElements [2] ExtraElements OPTIONAL }, signatureValue ECDSA-Signature } Diversifier ::= SEQUENCE OF DiversifierKeyValuePair DiversifierKeyValuePair ::= SEQUENCE { key IA5String, value IA5String }
The fields correspond to the same fields in a Polymorphic Identity or Pseudonym. The recipientKeySetVersion
holds the version number for the set of recipient's keys for Identities and Pseudonyms (PD-Di, PC-Di and PI-Di). Note: In schemeVersion
1 the recipientKeySetVersion
for DVs is a value of 8 decimal digits corresponding with the issue date (notBefore) of the certificate, in the format YYYYMMDD, used to request the PEM file at the party generating the keys within the scheme.
A DirectEncryptedPseudonym is – with the exception of the authorizedParty – identical to an EncryptedPseudonym, although an additional key and processing step are needed for decryption. The signed form uses a ECDSA instead of a Schnorr (ECSDSA) signature. The creator
of a DEP is BSNk activation, the authorizedParty
identifies the party who requested the DEP for usage. The recipient SHOULD verify it received the DEP from the authorizedParty
. The DEP is intended for specific use cases, please consult BSNk / eID before planning to use a DEP.
See Diversifiers for additional details on the diversifier used in EP and DEP.
The auditElement
is similar to the auditElement
of a Polymorphic Identity or Pseudonym. The signature is a Schnorr (ECSDSA) signature for efficiency.
-- Current specification version of data structure for a Schnorr (ECSDSA) signature EC-SDSA-Signature ::= SEQUENCE { signatureType OBJECT IDENTIFIER (ecsdsa-plain-SHA384), signatureValue EC-Sig-Value } bsi-de OBJECT IDENTIFIER ::= { itu-t(0) identified-organization(4) etsi(0) reserved(127) etsi-identified-organization(0) 7 } id-ecc OBJECT IDENTIFIER ::= { bsi-de algorithms(1) 1 } -- Current specification of identifier for a Schnorr (ECSDSA) signature ecsdsa-plain-signatures OBJECT IDENTIFIER ::= { id-ecc signatures(4) 4 } ecsdsa-plain-SHA384 OBJECT IDENTIFIER ::= { ecsdsa-plain-signatures 3 }
id-BSNk-encrypted OBJECT IDENTIFIER ::= { id-BSNk-identifiers 2 } id-BSNk-encrypted-identity OBJECT IDENTIFIER ::= { id-BSNk-encrypted 1 } id-BSNk-encrypted-pseudonym OBJECT IDENTIFIER ::= { id-BSNk-encrypted 2 } -- deprecated id-BSNk-encrypted-identity-signed OBJECT IDENTIFIER ::= { id-BSNk-encrypted 3 } -- deprecated id-BSNk-encrypted-pseudonym-signed OBJECT IDENTIFIER ::= { id-BSNk-encrypted 4 } id-BSNk-encrypted-direct-pseudonym OBJECT IDENTIFIER ::= { id-BSNk-encrypted 5 } id-BSNk-encrypted-direct-identity OBJECT IDENTIFIER ::= { id-BSNk-encrypted 9 } id-BSNk-encrypted-direct-identity-v2 OBJECT IDENTIFIER ::= { id-BSNk-encrypted-direct-identity 2 } id-BSNk-encrypted-direct-pseudonym-v2 OBJECT IDENTIFIER ::= { id-BSNk-encrypted-direct-pseudonym 2 } id-BSNk-encrypted-direct-pseudonym-signed OBJECT IDENTIFIER ::= { id-BSNk-encrypted 6 } id-BSNk-encrypted-direct-identity-signed OBJECT IDENTIFIER ::= { id-BSNk-encrypted 10 } id-BSNk-encrypted-direct-identity-signed-v2 OBJECT IDENTIFIER ::= { id-BSNk-encrypted-direct-identity-signed 2 } id-BSNk-encrypted-direct-pseudonym-signed-v2 OBJECT IDENTIFIER ::= { id-BSNk-encrypted-direct-pseudonym-signed 2 } id-BSNk-encrypted-identity-ecsdsa-signed OBJECT IDENTIFIER ::= { id-BSNk-encrypted 7 } id-BSNk-encrypted-identity-ecsdsa-signed-v2 OBJECT IDENTIFIER ::= { id-BSNk-encrypted-identity-ecsdsa-signed 2 } id-BSNk-encrypted-pseudonym-ecsdsa-signed OBJECT IDENTIFIER ::= { id-BSNk-encrypted 8 } id-BSNk-encrypted-pseudonym-ecsdsa-signed-v2 OBJECT IDENTIFIER ::= { id-BSNk-encrypted-pseudonym-ecsdsa-signed 2 }