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-2025 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    void* mBne = nullptr;
   25
   26    explicit ARsa(void* rsa, void* bne);
   27
   28public:
   29    ~ARsa();
   30
   31    AByteBuffer encrypt(AByteBufferView in);
   32    AByteBuffer decrypt(AByteBufferView in);
   33
   34    size_t getKeyLength() const;
   35
   36    AByteBuffer getPrivateKeyPEM() const;
   37    AByteBuffer getPublicKeyPEM() const;
   38
   39    static _<ARsa> generate(int bits = 0x800);
   40    static _<ARsa> fromPrivateKeyPEM(AByteBufferView buffer);
   41    static _<ARsa> fromPublicKeyPEM(AByteBufferView buffer);
   42};
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:179
Forbids copy of your class.
Definition values.h:45