mirror of
https://github.com/QuasarApp/easyssl.git
synced 2025-05-08 18:29:34 +00:00
83cea81307
Support RSA and x509 formats
EasySSL
This is wrapper library that make using OpenSSL library more simple. This library contains interfaces for the signing and encription data.
Supported encription alhorithms:
- ECDSA
- RSA
Supported features
- encription
- signing
- keys creating
- asyn auth bse on the asyn encriptions methods
Build and Include
-
cd yourRepo
-
git submodule add https://github.com/QuasarApp/easyssl.git # add the repository of Heart into your repo like submodule
-
git submodule update --init --recursive
-
Include in your CMakeLists.txt file the main CMakeLists.txt file of Heart library
add_subdirectory(easyssl)
-
link the Heart library to your target
target_link_libraries(yourLib PUBLIC easyssl)
-
rebuild yuor project
Usage
Encription
#include "easyssl/rsassl.h"
// create a publick and private keys array.
int main() {
QByteArray pub, priv;
EasySSL::RSASSL crypto;
crypto.makeKeys(pub, priv)
auto siganture = crypto.signMessage(message, priv);
crypto.checkSign(message, siganture, pub);
auto encriptedMsg = crypto.encrypt(message, pub);
auto decryptedMsg = crypto.decrypt(encriptedMsg, priv);
}
Authentication
#include <easyssl/authecdsa.h>
class ECDSA: public EasySSL::AuthECDSA {
public:
// AsyncKeysAuth interface
void setPrivateKey(const QByteArray &newPriv) {
_priv = newPriv;
}
QByteArray getPrivateKey() const {
return _priv;
};
private:
QByteArray _priv;
};
ECDSA edsa;
QByteArray pub, priv;
QString userID;
// make public and private keys.
edsa.makeKeys(pub, priv);
edsa.setPrivateKey(priv);
edsa.setPublicKey(pub);
// prepare an authentication object.
edsa.prepare();
edsa.setPrivateKey({});
edsa.auth(1000, &userID)
Do not forget to help us make this library better...
See our main documentation about contributing to EasySsl
Full documentation available here
Languages
C++
92.1%
CMake
7.9%