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/Padding.h"
7#include "mc/deps/crypto/PrivateKeySigningFormat.h"
8#include "mc/deps/crypto/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#ifdef LL_PLAT_S
33 virtual ~Asymmetric() /*override*/ = default;
34#else // LL_PLAT_C
35 virtual ~Asymmetric() /*override*/;
36#endif
37
38 virtual bool generateKeyPair(::std::string& privateKey, ::std::string& publicKey) /*override*/;
39
40 virtual bool
41 constructPublicKey(::std::string const& modulus, ::std::string const& exponent, ::std::string& keyOut) /*override*/;
42
43 virtual ::std::string encryptData(
44 ::std::string const& publicKey,
45 ::std::string const& data,
46 ::Crypto::Asymmetric::Padding paddingType,
47 ::Crypto::Asymmetric::PubKeyFormat keyFormat,
48 bool useSHA256
49 ) /*override*/;
50
51 virtual ::std::string decryptData(
52 ::std::string const& privateKey,
53 ::std::string const& data,
54 ::Crypto::Asymmetric::Padding paddingType
55 ) /*override*/;
56
57 virtual ::std::string signData(
58 ::std::string const& privateKey,
59 ::std::string const& data,
60 ::Crypto::Hash::HashType hash,
61 ::Crypto::Asymmetric::PrivateKeySigningFormat format
62 ) /*override*/;
63
64 virtual bool verifyData(
65 ::std::string const& publicKey,
66 ::std::string const& signature,
67 ::std::string const& data,
68 ::Crypto::Hash::HashType hash
69 ) /*override*/;
70
71 virtual ::std::string
72 computeSharedSecret(::std::string const& myPrivateKey, ::std::string const& peerPublicKey) /*override*/;
73 // NOLINTEND
74
75public:
76 // member functions
77 // NOLINTBEGIN
78 MCNAPI explicit Asymmetric(::Crypto::Asymmetric::System system);
79 // NOLINTEND
80
81public:
82 // constructor thunks
83 // NOLINTBEGIN
84 MCNAPI void* $ctor(::Crypto::Asymmetric::System system);
85 // NOLINTEND
86
87public:
88 // destructor thunk
89 // NOLINTBEGIN
90 MCNAPI void $dtor();
91 // NOLINTEND
92
93public:
94 // virtual function thunks
95 // NOLINTBEGIN
96 MCNAPI bool $generateKeyPair(::std::string& privateKey, ::std::string& publicKey);
97
98 MCNAPI bool $constructPublicKey(::std::string const& modulus, ::std::string const& exponent, ::std::string& keyOut);
99
100 MCNAPI ::std::string $encryptData(
101 ::std::string const& publicKey,
102 ::std::string const& data,
103 ::Crypto::Asymmetric::Padding paddingType,
104 ::Crypto::Asymmetric::PubKeyFormat keyFormat,
105 bool useSHA256
106 );
107
108 MCNAPI ::std::string
109 $decryptData(::std::string const& privateKey, ::std::string const& data, ::Crypto::Asymmetric::Padding paddingType);
110
111 MCNAPI ::std::string $signData(
112 ::std::string const& privateKey,
113 ::std::string const& data,
114 ::Crypto::Hash::HashType hash,
115 ::Crypto::Asymmetric::PrivateKeySigningFormat format
116 );
117
118 MCNAPI bool $verifyData(
119 ::std::string const& publicKey,
120 ::std::string const& signature,
121 ::std::string const& data,
122 ::Crypto::Hash::HashType hash
123 );
124
125 MCNAPI ::std::string $computeSharedSecret(::std::string const& myPrivateKey, ::std::string const& peerPublicKey);
126
127
128 // NOLINTEND
129
130public:
131 // vftables
132 // NOLINTBEGIN
133 MCNAPI static void** $vftable();
134 // NOLINTEND
135};
136
137} // 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