Keypop Calypso Crypto Legacy SAM C++ API - 1.0.0
Component of the Keypop C++ API
LegacySamApiFactory.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#include <string>
15
16#include "keypop/calypso/card/transaction/spi/SymmetricCryptoCardTransactionManagerFactory.hpp"
30#include "keypop/reader/CardReader.hpp"
31
32namespace keypop {
33namespace calypso {
34namespace crypto {
35namespace legacysam {
36
37using keypop::calypso::card::transaction::spi::
38 SymmetricCryptoCardTransactionManagerFactory;
41using keypop::calypso::crypto::legacysam::transaction::
42 AsyncTransactionCreatorManager;
43using keypop::calypso::crypto::legacysam::transaction::
44 AsyncTransactionExecutorManager;
45using keypop::calypso::crypto::legacysam::transaction::
46 BasicSignatureComputationData;
47using keypop::calypso::crypto::legacysam::transaction::
48 BasicSignatureVerificationData;
51using keypop::calypso::crypto::legacysam::transaction::
52 LegacyCardCertificateComputationData;
53using keypop::calypso::crypto::legacysam::transaction::
54 SecureWriteTransactionManager;
56using keypop::calypso::crypto::legacysam::transaction::
57 TraceableSignatureComputationData;
58using keypop::calypso::crypto::legacysam::transaction::
59 TraceableSignatureVerificationData;
60using keypop::reader::CardReader;
61
68public:
75 virtual std::shared_ptr<LegacySamSelectionExtension>
77
90 virtual std::shared_ptr<SymmetricCryptoCardTransactionManagerFactory>
92 const std::shared_ptr<CardReader> samReader,
93 const std::shared_ptr<LegacySam> sam)
94 = 0;
95
102 virtual std::shared_ptr<SecuritySetting> createSecuritySetting() = 0;
103
113 virtual std::shared_ptr<FreeTransactionManager>
115 const std::shared_ptr<CardReader> samReader,
116 const std::shared_ptr<LegacySam> sam)
117 = 0;
118
129 virtual std::shared_ptr<SecureWriteTransactionManager>
131 const std::shared_ptr<CardReader> samReader,
132 const std::shared_ptr<LegacySam> sam,
133 const std::shared_ptr<SecuritySetting> securitySetting)
134 = 0;
135
148 virtual std::shared_ptr<AsyncTransactionCreatorManager>
150 const std::string& targetSamContext,
151 const std::shared_ptr<SecuritySetting> securitySetting)
152 = 0;
153
166 virtual std::shared_ptr<AsyncTransactionExecutorManager>
168 const std::shared_ptr<CardReader> samReader,
169 const std::shared_ptr<LegacySam> sam,
170 const std::string& samCommands)
171 = 0;
172
179 virtual std::shared_ptr<KeyPairContainer> createKeyPairContainer() = 0;
180
187 virtual std::shared_ptr<LegacyCardCertificateComputationData>
189
196 virtual std::shared_ptr<BasicSignatureComputationData>
198
205 virtual std::shared_ptr<TraceableSignatureComputationData>
207
214 virtual std::shared_ptr<BasicSignatureVerificationData>
216
223 virtual std::shared_ptr<TraceableSignatureVerificationData>
225};
226
227} /* namespace legacysam */
228} /* namespace crypto */
229} /* namespace calypso */
230} /* namespace keypop */
virtual std::shared_ptr< KeyPairContainer > createKeyPairContainer()=0
Returns a new instance of KeyPairContainer.
virtual std::shared_ptr< SymmetricCryptoCardTransactionManagerFactory > createSymmetricCryptoCardTransactionManagerFactory(const std::shared_ptr< CardReader > samReader, const std::shared_ptr< LegacySam > sam)=0
Returns a new instance of SymmetricCryptoCardTransactionManagerFactory to be used to secure a card tr...
virtual std::shared_ptr< BasicSignatureComputationData > createBasicSignatureComputationData()=0
Returns a new instance of BasicSignatureComputationData.
virtual std::shared_ptr< TraceableSignatureVerificationData > createTraceableSignatureVerificationData()=0
Returns a new instance of TraceableSignatureVerificationData.
virtual std::shared_ptr< AsyncTransactionExecutorManager > createAsyncTransactionExecutorManager(const std::shared_ptr< CardReader > samReader, const std::shared_ptr< LegacySam > sam, const std::string &samCommands)=0
Returns a new instance of AsyncTransactionExecutorManager.
virtual std::shared_ptr< AsyncTransactionCreatorManager > createAsyncTransactionCreatorManager(const std::string &targetSamContext, const std::shared_ptr< SecuritySetting > securitySetting)=0
Returns a new instance of AsyncTransactionCreatorManager.
virtual std::shared_ptr< SecureWriteTransactionManager > createSecureWriteTransactionManager(const std::shared_ptr< CardReader > samReader, const std::shared_ptr< LegacySam > sam, const std::shared_ptr< SecuritySetting > securitySetting)=0
Returns a new instance of SecureWriteTransactionManager.
virtual std::shared_ptr< BasicSignatureVerificationData > createBasicSignatureVerificationData()=0
Returns a new instance of BasicSignatureVerificationData.
virtual std::shared_ptr< LegacyCardCertificateComputationData > createLegacyCardCertificateComputationData()=0
Returns a new instance of LegacyCardCertificateComputationData.
virtual std::shared_ptr< LegacySamSelectionExtension > createLegacySamSelectionExtension()=0
Returns a new instance of LegacySamSelectionExtension.
virtual std::shared_ptr< TraceableSignatureComputationData > createTraceableSignatureComputationData()=0
Returns a new instance of TraceableSignatureComputationData.
virtual std::shared_ptr< SecuritySetting > createSecuritySetting()=0
Returns a new instance of SecuritySetting.
virtual std::shared_ptr< FreeTransactionManager > createFreeTransactionManager(const std::shared_ptr< CardReader > samReader, const std::shared_ptr< LegacySam > sam)=0
Returns a new instance of FreeTransactionManager.
Extends the SmartCard interface of the "Keypop Reader API" to provide additional functionality specif...
Definition: LegacySam.hpp:45
Extends the CardSelectionExtension interface of the "Keypop Reader API" to provide means to define op...
Transaction manager dedicated to operations performed without control SAM.
Security setting to manage operations of a legacy SAM transaction secured by a control SAM.