AUI Framework  develop
Cross-platform base for C++ UI apps
Loading...
Searching...
No Matches
ARsa.h
1/*
2 * AUI Framework - Declarative UI toolkit for modern C++20
3 * Copyright (C) 2020-2024 Alex2772 and Contributors
4 *
5 * SPDX-License-Identifier: MPL-2.0
6 *
7 * This Source Code Form is subject to the terms of the Mozilla Public
8 * License, v. 2.0. If a copy of the MPL was not distributed with this
9 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
10 */
11
12#pragma once
13#include "AUI/Rsa.h"
14#include "AUI/Common/SharedPtrTypes.h"
15#include "AUI/Common/AByteBuffer.h"
16
21class API_AUI_CRYPT ARsa : public aui::noncopyable {
22private:
23 void* mRsa = nullptr;
24
25 explicit ARsa(void* rsa);
26
27public:
28 ~ARsa();
29
30 AByteBuffer encrypt(AByteBufferView in);
31 AByteBuffer decrypt(AByteBufferView in);
32
33 size_t getKeyLength() const;
34
35 AByteBuffer getPrivateKeyPEM() const;
36 AByteBuffer getPublicKeyPEM() const;
37
38 static _<ARsa> generate(int bits = 0x800);
39 static _<ARsa> fromPrivateKeyPEM(AByteBufferView buffer);
40 static _<ARsa> fromPublicKeyPEM(AByteBufferView buffer);
41};
Acts like std::string_view but for AByteBuffer.
Definition AByteBufferView.h:24
std::vector-like growing array for byte storage.
Definition AByteBuffer.h:31
An std::weak_ptr with AUI extensions.
Definition SharedPtrTypes.h:178
Forbids copy of your class.
Definition values.h:40