LeviLamina
Loading...
Searching...
No Matches
Asymmetric.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/crypto/asymmetric/Padding.h"
7#include "mc/deps/crypto/asymmetric/PrivateKeySigningFormat.h"
8#include "mc/deps/crypto/asymmetric/PubKeyFormat.h"
9#include "mc/deps/crypto/asymmetric/system/ISystemInterface.h"
10#include "mc/deps/crypto/asymmetric/system/System.h"
11#include "mc/deps/crypto/hash/HashType.h"
12
13namespace Crypto::Asymmetric {
14
15class Asymmetric : public ::Crypto::Asymmetric::ISystemInterface {
16public:
17 // member variables
18 // NOLINTBEGIN
21 // NOLINTEND
22
23public:
24 // prevent constructor by default
25 Asymmetric& operator=(Asymmetric const&);
26 Asymmetric(Asymmetric const&);
27 Asymmetric();
28
29public:
30 // virtual functions
31 // NOLINTBEGIN
32 virtual ~Asymmetric() /*override*/ = default;
33
34 virtual bool generateKeyPair(::std::string& privateKey, ::std::string& publicKey) /*override*/;
35
36 virtual bool
37 constructPublicKey(::std::string const& modulus, ::std::string const& exponent, ::std::string& keyOut) /*override*/;
38
39 virtual ::std::string encryptData(
40 ::std::string const& publicKey,
41 ::std::string const& data,
42 ::Crypto::Asymmetric::Padding paddingType,
43 ::Crypto::Asymmetric::PubKeyFormat keyFormat,
44 bool useSHA256
45 ) /*override*/;
46
47 virtual ::std::string decryptData(
48 ::std::string const& privateKey,
49 ::std::string const& data,
50 ::Crypto::Asymmetric::Padding paddingType
51 ) /*override*/;
52
53 virtual ::std::string signData(
54 ::std::string const& privateKey,
55 ::std::string const& data,
56 ::Crypto::Hash::HashType hash,
57 ::Crypto::Asymmetric::PrivateKeySigningFormat format
58 ) /*override*/;
59
60 virtual bool verifyData(
61 ::std::string const& publicKey,
62 ::std::string const& signature,
63 ::std::string const& data,
64 ::Crypto::Hash::HashType hash
65 ) /*override*/;
66
67 virtual ::std::string
68 computeSharedSecret(::std::string const& myPrivateKey, ::std::string const& peerPublicKey) /*override*/;
69 // NOLINTEND
70
71public:
72 // member functions
73 // NOLINTBEGIN
74 MCNAPI explicit Asymmetric(::Crypto::Asymmetric::System system);
75
76 MCNAPI bool canComputeSecret();
77 // NOLINTEND
78
79public:
80 // constructor thunks
81 // NOLINTBEGIN
82 MCNAPI void* $ctor(::Crypto::Asymmetric::System system);
83 // NOLINTEND
84
85public:
86 // virtual function thunks
87 // NOLINTBEGIN
88 MCNAPI bool $generateKeyPair(::std::string& privateKey, ::std::string& publicKey);
89
90 MCNAPI bool $constructPublicKey(::std::string const& modulus, ::std::string const& exponent, ::std::string& keyOut);
91
92 MCNAPI ::std::string $encryptData(
93 ::std::string const& publicKey,
94 ::std::string const& data,
95 ::Crypto::Asymmetric::Padding paddingType,
96 ::Crypto::Asymmetric::PubKeyFormat keyFormat,
97 bool useSHA256
98 );
99
100 MCNAPI ::std::string
101 $decryptData(::std::string const& privateKey, ::std::string const& data, ::Crypto::Asymmetric::Padding paddingType);
102
103 MCNAPI ::std::string $signData(
104 ::std::string const& privateKey,
105 ::std::string const& data,
106 ::Crypto::Hash::HashType hash,
107 ::Crypto::Asymmetric::PrivateKeySigningFormat format
108 );
109
110 MCNAPI bool $verifyData(
111 ::std::string const& publicKey,
112 ::std::string const& signature,
113 ::std::string const& data,
114 ::Crypto::Hash::HashType hash
115 );
116
117 MCNAPI ::std::string $computeSharedSecret(::std::string const& myPrivateKey, ::std::string const& peerPublicKey);
118
119
120 // NOLINTEND
121
122public:
123 // vftables
124 // NOLINTBEGIN
125 MCNAPI static void** $vftable();
126 // NOLINTEND
127};
128
129} // namespace Crypto::Asymmetric
MCAPI bool $verifyData(::std::string const &publicKey, ::std::string const &signature, ::std::string const &data, ::Crypto::Hash::HashType hash)
MCAPI bool $generateKeyPair(::std::string &privateKey, ::std::string &publicKey)
MCAPI::std::string $computeSharedSecret(::std::string const &myPrivateKey, ::std::string const &peerPublicKey)
static MCAPI void ** $vftable()
MCAPI::std::string $decryptData(::std::string const &privateKey, ::std::string const &data, ::Crypto::Asymmetric::Padding paddingType)
MCAPI void * $ctor(::Crypto::Asymmetric::System system)
MCAPI::std::string $signData(::std::string const &privateKey, ::std::string const &data, ::Crypto::Hash::HashType hash, ::Crypto::Asymmetric::PrivateKeySigningFormat format)
MCAPI Asymmetric(::Crypto::Asymmetric::System system)
MCAPI bool $constructPublicKey(::std::string const &modulus, ::std::string const &exponent, ::std::string &keyOut)
MCAPI::std::string $encryptData(::std::string const &publicKey, ::std::string const &data, ::Crypto::Asymmetric::Padding paddingType, ::Crypto::Asymmetric::PubKeyFormat keyFormat, bool useSHA256)
Definition ISystemInterface.h:13
Definition Alias.h:14