AlexaClientSDK  3.0.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
CryptoFactoryInterface.h
Go to the documentation of this file.
1 /*
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License").
5  * You may not use this file except in compliance with the License.
6  * A copy of the License is located at
7  *
8  * http://aws.amazon.com/apache2.0/
9  *
10  * or in the "license" file accompanying this file. This file is distributed
11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12  * express or implied. See the License for the specific language governing
13  * permissions and limitations under the License.
14  */
15 
16 #ifndef ACSDK_CRYPTOINTERFACES_CRYPTOFACTORYINTERFACE_H_
17 #define ACSDK_CRYPTOINTERFACES_CRYPTOFACTORYINTERFACE_H_
18 
19 #include <memory>
20 
21 #include "AlgorithmType.h"
22 #include "KeyFactoryInterface.h"
23 #include "CryptoCodecInterface.h"
24 #include "DigestInterface.h"
25 #include "DigestType.h"
26 
27 namespace alexaClientSDK {
28 namespace cryptoInterfaces {
29 
43 public:
45  virtual ~CryptoFactoryInterface() noexcept = default;
46 
56  virtual std::unique_ptr<CryptoCodecInterface> createEncoder(AlgorithmType type) noexcept = 0;
57 
67  virtual std::unique_ptr<CryptoCodecInterface> createDecoder(AlgorithmType type) noexcept = 0;
68 
78  virtual std::unique_ptr<DigestInterface> createDigest(DigestType type) noexcept = 0;
79 
87  virtual std::shared_ptr<KeyFactoryInterface> getKeyFactory() noexcept = 0;
88 };
89 
90 } // namespace cryptoInterfaces
91 } // namespace alexaClientSDK
92 
93 #endif // ACSDK_CRYPTOINTERFACES_CRYPTOFACTORYINTERFACE_H_
DigestType
Enumeration of all supported digest algorithms.
Definition: DigestType.h:31
virtual ~CryptoFactoryInterface() noexcept=default
Default destructor.
virtual std::shared_ptr< KeyFactoryInterface > getKeyFactory() noexcept=0
Provides key factory.
virtual std::unique_ptr< CryptoCodecInterface > createEncoder(AlgorithmType type) noexcept=0
Create new encoder cipher.
Whether or not curl logs should be emitted.
Definition: AVSConnectionManager.h:36
type
Definition: upload.py:443
virtual std::unique_ptr< DigestInterface > createDigest(DigestType type) noexcept=0
Create new hash function.
Crypto API factory interface.
Definition: CryptoFactoryInterface.h:42
AlgorithmType
Enumeration of all supported encryption protocols.
Definition: AlgorithmType.h:31
virtual std::unique_ptr< CryptoCodecInterface > createDecoder(AlgorithmType type) noexcept=0
Create new decodec cipher.

AlexaClientSDK 3.0.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0