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