10Duke Enterprise C++ SDK
Loading...
Searching...
No Matches
WinCNGMessageSigner.h
1#ifndef TENDUKE_CRYPTO_WIN_CNG_WINCNGMESSAGESIGNER_H
2#define TENDUKE_CRYPTO_WIN_CNG_WINCNGMESSAGESIGNER_H
3
4#include "../asymmetric/WinCNGPrivateKey.h"
5#include "crypto/msgauthn//MessageDigest.h"
6#include "utl/FixedSizeBinaryData.h"
7#include <memory>
8#include <windows.h>
9
10namespace tenduke { namespace crypto { namespace win { namespace cng {
11
17class WinCNGMessageSigner
18{
19public:
20 WinCNGMessageSigner(
21 const std::shared_ptr<tenduke::crypto::win::cng::WinCNGPrivateKey> &signing_key,
22 std::unique_ptr<tenduke::crypto::MessageDigest> message_digest,
23 LPCWSTR padding_algorithm_id
24 )
25 : signingKey(signing_key),
26 messageDigest(std::move(message_digest)),
27 paddingAlgorithmId(padding_algorithm_id) {
28 }
29
30 std::unique_ptr<::tenduke::utl::FixedSizeBinaryData> sign(
31 const unsigned char *message,
32 size_t messageLength
33 );
34private:
35 const std::shared_ptr<::tenduke::crypto::win::cng::WinCNGPrivateKey> signingKey;
36 std::unique_ptr<::tenduke::crypto::MessageDigest> messageDigest;
37 const ::LPCWSTR paddingAlgorithmId;
38};
39
40}}}} // tenduke
41
42#endif //TENDUKE_CRYPTO_WIN_CNG_WINCNGMESSAGESIGNER_H
Cryptography services.
Definition AbstractCiphers.h:18
Root for classes, functions and globals of 10Duke C++ Client.
Definition APIRequest.h:4