Page tree
Skip to end of metadata
Go to start of metadata

Usage (transformation and decryption)
  • Encrypted Identity (EI) or Encrypted Pseudonym (EP)
  • Direct Encrypted Pseudonym (DEP)
  • Direct Encrypted Identity (DEI)

Encrypted structures are used (and decrypted) by Relying Parties to identify a user using his identity or pseudonym.


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:

Encrypted Identity or Pseudonym ASN.1 notation
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 }
  • No labels