Keypop Calypso Crypto Asymmetric C++ API - 0.2.0
Component of the Keypop C++ API
CardCertificateSpi.hpp
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright (c) 2025 Calypso Networks Association https://calypsonet.org/ *
3 * *
4 * This program and the accompanying materials are made available under the *
5 * terms of the MIT License which is available at *
6 * https://opensource.org/licenses/MIT. *
7 * *
8 * SPDX-License-Identifier: MIT *
9 ******************************************************************************/
10
11#pragma once
12
13#include <cstdint>
14#include <memory>
15#include <vector>
16
19
20namespace keypop {
21namespace calypso {
22namespace crypto {
23namespace asymmetric {
24namespace certificate {
25namespace spi {
26
33public:
40 virtual const std::vector<uint8_t>& getIssuerPublicKeyReference() const = 0;
41
49 virtual const std::vector<uint8_t>& getCardAid() const = 0;
50
57 virtual const std::vector<uint8_t>& getCardSerialNumber() const = 0;
58
80 virtual const std::shared_ptr<CardPublicKeySpi>
82 const std::shared_ptr<CaCertificateContentSpi> issuerCertificateContent)
83 = 0;
84};
85
86} /* namespace spi */
87} /* namespace certificate */
88} /* namespace asymmetric */
89} /* namespace crypto */
90} /* namespace calypso */
91} /* namespace keypop */
virtual const std::vector< uint8_t > & getCardSerialNumber() const =0
Retrieves the serial number of the card as 8-byte byte array.
virtual const std::shared_ptr< CardPublicKeySpi > checkCertificateAndGetPublicKey(const std::shared_ptr< CaCertificateContentSpi > issuerCertificateContent)=0
Verifies the certificate signature and other relevant fields, then returns the public key.
virtual const std::vector< uint8_t > & getIssuerPublicKeyReference() const =0
Retrieves the reference of the issuer's public key as a byte array.
virtual const std::vector< uint8_t > & getCardAid() const =0
Retrieves the AID of the autonomous application of the card as a byte array ranging from 5 to 16 byte...