Keypop Calypso Card C++ API - 2.2.0
Component of the Keypop C++ API
CalypsoCardApiFactory.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 <memory>
14
28#include "keypop/reader/CardReader.hpp"
29
30namespace keypop {
31namespace calypso {
32namespace card {
33
44using keypop::calypso::card::transaction::spi::
45 AsymmetricCryptoCardTransactionManagerFactory;
46using keypop::calypso::card::transaction::spi::
47 SymmetricCryptoCardTransactionManagerFactory;
48using keypop::reader::CardReader;
49
50/* C++ specific */
53
60public:
67 virtual std::unique_ptr<CalypsoCardSelectionExtension>
69
79 virtual std::unique_ptr<SymmetricCryptoSecuritySetting>
81 const std::shared_ptr<SymmetricCryptoCardTransactionManagerFactory>&
82 cryptoCardTransactionManagerFactory) = 0;
83
93 virtual std::unique_ptr<FreeTransactionManager>
95 const std::shared_ptr<CardReader>& cardReader,
96 const std::shared_ptr<CalypsoCard>& card) = 0;
97
107 virtual std::unique_ptr<AsymmetricCryptoSecuritySetting>
109 const std::shared_ptr<AsymmetricCryptoCardTransactionManagerFactory>&
110 cryptoCardTransactionManagerFactory) = 0;
111
122 virtual std::unique_ptr<SecureRegularModeTransactionManagerBase>
124 const std::shared_ptr<CardReader>& cardReader,
125 const std::shared_ptr<CalypsoCard>& card,
126 const std::shared_ptr<SymmetricCryptoSecuritySetting>& securitySetting)
127 = 0;
128
139 virtual std::unique_ptr<SecureExtendedModeTransactionManager>
141 const std::shared_ptr<CardReader>& cardReader,
142 const std::shared_ptr<CalypsoCard>& card,
143 const std::shared_ptr<SymmetricCryptoSecuritySetting>& securitySetting)
144 = 0;
145
156 virtual std::unique_ptr<SecurePkiModeTransactionManager>
158 const std::shared_ptr<CardReader>& cardReader,
159 const std::shared_ptr<CalypsoCard>& card,
160 const std::shared_ptr<AsymmetricCryptoSecuritySetting>& securitySetting)
161 = 0;
162
169 virtual std::shared_ptr<SearchCommandData> createSearchCommandData() = 0;
170};
171
172} /* namespace card */
173} /* namespace calypso */
174} /* namespace keypop */
virtual std::unique_ptr< SecureRegularModeTransactionManagerBase > createSecureRegularModeTransactionManager(const std::shared_ptr< CardReader > &cardReader, const std::shared_ptr< CalypsoCard > &card, const std::shared_ptr< SymmetricCryptoSecuritySetting > &securitySetting)=0
Returns a new instance of SecureRegularModeTransactionManager.
virtual std::unique_ptr< CalypsoCardSelectionExtension > createCalypsoCardSelectionExtension()=0
Returns a new instance of CalypsoCardSelectionExtension.
virtual std::unique_ptr< FreeTransactionManager > createFreeTransactionManager(const std::shared_ptr< CardReader > &cardReader, const std::shared_ptr< CalypsoCard > &card)=0
Returns a new instance of FreeTransactionManager.
virtual std::shared_ptr< SearchCommandData > createSearchCommandData()=0
Returns a new instance of SearchCommandData}.
virtual std::unique_ptr< SymmetricCryptoSecuritySetting > createSymmetricCryptoSecuritySetting(const std::shared_ptr< SymmetricCryptoCardTransactionManagerFactory > &cryptoCardTransactionManagerFactory)=0
Returns a new instance of SymmetricCryptoSecuritySetting.
virtual std::unique_ptr< AsymmetricCryptoSecuritySetting > createAsymmetricCryptoSecuritySetting(const std::shared_ptr< AsymmetricCryptoCardTransactionManagerFactory > &cryptoCardTransactionManagerFactory)=0
Returns a new instance of AsymmetricCryptoSecuritySetting.
virtual std::unique_ptr< SecureExtendedModeTransactionManager > createSecureExtendedModeTransactionManager(const std::shared_ptr< CardReader > &cardReader, const std::shared_ptr< CalypsoCard > &card, const std::shared_ptr< SymmetricCryptoSecuritySetting > &securitySetting)=0
Returns a new instance of SecureExtendedModeTransactionManager.
virtual std::unique_ptr< SecurePkiModeTransactionManager > createSecurePkiModeTransactionManager(const std::shared_ptr< CardReader > &cardReader, const std::shared_ptr< CalypsoCard > &card, const std::shared_ptr< AsymmetricCryptoSecuritySetting > &securitySetting)=0
Returns a new instance of SecurePkiModeTransactionManager.
Extends the IsoSmartCard interface of the "Keypop Reader API" to provide additional functionality spe...
Definition: CalypsoCard.hpp:58
Extends the CardSelectionExtension interface of the "Keypop Reader API" to provide means to define op...
Security setting for a Calypso card transaction secured by "asymmetric" key cryptographic algorithms ...
Manager of card transactions requiring no cryptographic computation.
Contains the input/output data of the CardTransactionManager::prepareSearchRecords(SearchCommandData)...
Manager of card transactions secured by asymmetric key cryptographic algorithms, compatible with Caly...
Manager of card transactions secured by symmetric key cryptographic algorithms, compatible with all C...
Security setting for a Calypso card transaction secured by "symmetric" key cryptographic algorithms (...