ChipAuthenticationInfo
internal final class ChipAuthenticationInfo : SecurityInfo
ChipAuthenticationInfo
represents security information related to
Chip Authentication in electronic Machine Readable Travel Documents (eMRTD).
The ASN.1 data structure ChipAuthenticationInfo
is defined as follows:
ChipAuthenticationInfo ::= SEQUENCE {
protocol OBJECT IDENTIFIER(
id-CA-DH-3DES-CBC-CBC |
id-CA-DH-AES-CBC-CMAC-128 |
id-CA-DH-AES-CBC-CMAC-192 |
id-CA-DH-AES-CBC-CMAC-256 |
id-CA-ECDH-3DES-CBC-CBC |
id-CA-ECDH-AES-CBC-CMAC-128 |
id-CA-ECDH-AES-CBC-CMAC-192 |
id-CA-ECDH-AES-CBC-CMAC-256),
version INTEGER, -- MUST be 1,
keyId INTEGER OPTIONAL
}
This data structure provides detailed information on an implementation of Chip Authentication and its components represent:
protocol
: An object identifier that identifies the algorithms to be used, i.e.key agreement, symmetric cipher and MAC).version
: An integer that identifies the version of the protocol. Currently, only version 1 is supported by this specification.keyId
: An integer that may indicate the local key identifier (optional).
Important
KeyId
must be used if the eMRTD chip provides multiple public keys
for Chip Authentication.
Note
It inherits from the SecurityInfo
class.
-
Declaration
Swift
internal typealias KeyIdentifier = Int
-
The
SecurityProtocol
used for Chip Authentication.Declaration
Swift
private(set) var securityProtocol: ChipAuthenticationSecurityProtocol { get }
-
The Key Identifier, if available.
Declaration
Swift
private(set) var keyId: KeyIdentifier? { get }
-
Declaration
Swift
private(set) var version: Int? { get }
-
Check if the provided
ObjectIdentifier
(OID) is valid for Chip Authentication.Declaration
Swift
internal static func checkRequiredIdentifier(_ oid: ObjectIdentifier) -> Bool
Parameters
oid
The OID to check.
Return Value
true
if the OID is valid for Chip Authentication,false
otherwise. -
Initialize a
ChipAuthenticationInfo
instance with the given OID and ASN.1 data.Throws
An error if the security protocol cannot be determined from the provided OID.
Declaration
Swift
internal required init(oid: ObjectIdentifier, data: ASN1NodeCollection) throws
Parameters
oid
The
ObjectIdentifier
(OID) associated with the security information.data
The ASN.1 data containing security information.
-
Decode the ASN.1 data to extract relevant information.
Throws
An error if the data cannot be decoded successfully.
Declaration
Swift
override internal func decode(_ data: ASN1NodeCollection) throws
Parameters
data
The ASN.1 data to decode.