[*] Amend crypto headers and type usage

This commit is contained in:
Reece Wilson 2021-07-01 10:32:52 +01:00
parent 6e1037200c
commit b9da9c313e
7 changed files with 29 additions and 18 deletions

View File

@ -7,19 +7,24 @@
***/ ***/
#pragma once #pragma once
namespace Aurora::Crypto::RSA
{
class IRSAPublic;
}
namespace Aurora::Crypto::CA namespace Aurora::Crypto::CA
{ {
class ICertificateStore class ICertificateStore
{ {
public: public:
virtual void AddSignature(const PublicRSAKey& CA, const AuList<AuUInt8>& sig, virtual void AddSignature(const AuSPtr<RSA::IRSAPublic>& CA, const AuList<AuUInt8>& sig,
EHashType method, EPaddingType type) = 0; EHashType method, EPaddingType type) = 0;
virtual void AddPublicCert(const X509::Certificate& cert) = 0; virtual void AddPublicCert(const X509::Certificate& cert) = 0;
/// For future support of http gets of the CA list /// For future support of http gets of the CA list
virtual bool& AllowHTTPTree() = 0; virtual bool& AllowHTTPTree() = 0;
virtual bool CheckKey(const PublicKey& pub) = 0; virtual bool CheckKey(const AuSPtr<RSA::IRSAPublic>& pub) = 0;
virtual bool CheckCert(const X509::Certificate& cert) = 0; virtual bool CheckCert(const X509::Certificate& cert) = 0;
}; };

View File

@ -15,6 +15,12 @@ namespace Aurora::Crypto
{ {
using Certificate = AuList<AuUInt8>; using Certificate = AuList<AuUInt8>;
} }
struct RSAPair
{
AuString certificate;
AuString privKey;
};
} }
#include "EHashType.hpp" #include "EHashType.hpp"
@ -25,4 +31,4 @@ namespace Aurora::Crypto
#include "CA/CA.hpp" #include "CA/CA.hpp"
#include "ECC/ECC.hpp" #include "ECC/ECC.hpp"
#include "PEM/PEM.hpp" #include "PEM/PEM.hpp"
#include "RSA/RSA.hpp" #include "RSA/RSA.hpp"

View File

@ -7,7 +7,7 @@
***/ ***/
#pragma once #pragma once
namespace Aurora::Crypto::ECC25519 namespace Aurora::Crypto::ECC::C25519
{ {
} }

View File

@ -7,7 +7,7 @@
***/ ***/
#pragma once #pragma once
namespace Aurora::Crypto::ECCNIST namespace Aurora::Crypto::ECC::NIST
{ {
} }

View File

@ -16,8 +16,8 @@ namespace Aurora::Crypto::PEM
AUKN_SYM AuString PrivateRSAToString(const DerBuffer &in); AUKN_SYM AuString PrivateRSAToString(const DerBuffer &in);
AUKN_SYM bool FromString(const AuString &in, Aurora::Crypto::X509::Certificate &out); AUKN_SYM bool FromString(const AuString &in, Aurora::Crypto::X509::Certificate &out);
AUKN_SYM bool PublicFromString(const AuString &in, PublicKey &out); AUKN_SYM bool PublicFromString(const AuString &in, DerBuffer &out);
AUKN_SYM bool PrivateFromString(const AuString &in, PrivateKey &out); AUKN_SYM bool PrivateFromString(const AuString &in, DerBuffer &out);
AUKN_SYM bool PublicRSAFromString(const AuString &in, PrivateRSAKey &out); AUKN_SYM bool PublicRSAFromString(const AuString &in, DerBuffer &out);
AUKN_SYM bool PrivateRSAFromString(const AuString &in, PublicRSAKey &out); AUKN_SYM bool PrivateRSAFromString(const AuString &in, DerBuffer &out);
} }

View File

@ -62,22 +62,22 @@ namespace Aurora::Crypto::PEM
return SerializePEM("-----BEGIN CERTIFICATE-----", "-----END CERTIFICATE-----", in); return SerializePEM("-----BEGIN CERTIFICATE-----", "-----END CERTIFICATE-----", in);
} }
AUKN_SYM AuString PrivateToString(const PrivateKey &in) AUKN_SYM AuString PrivateToString(const DerBuffer &in)
{ {
return SerializePEM("-----BEGIN PRIVATE KEY-----", "-----END PRIVATE KEY-----", in); return SerializePEM("-----BEGIN PRIVATE KEY-----", "-----END PRIVATE KEY-----", in);
} }
AUKN_SYM AuString PublicToString(const PublicKey &in) AUKN_SYM AuString PublicToString(const DerBuffer &in)
{ {
return SerializePEM("-----BEGIN PUBLIC KEY-----", "-----END PUBLIC KEY-----", in); return SerializePEM("-----BEGIN PUBLIC KEY-----", "-----END PUBLIC KEY-----", in);
} }
AUKN_SYM AuString PublicRSAToString(const PrivateRSAKey &in) AUKN_SYM AuString PublicRSAToString(const DerBuffer &in)
{ {
return SerializePEM("-----BEGIN RSA PUBLIC KEY-----", "-----END RSA PUBLIC KEY-----", in); return SerializePEM("-----BEGIN RSA PUBLIC KEY-----", "-----END RSA PUBLIC KEY-----", in);
} }
AUKN_SYM AuString PrivateRSAToString(const PublicRSAKey &in) AUKN_SYM AuString PrivateRSAToString(const DerBuffer &in)
{ {
return SerializePEM("-----BEGIN RSA PRIVATE KEY-----", "-----END RSA PRIVATE KEY-----", in); return SerializePEM("-----BEGIN RSA PRIVATE KEY-----", "-----END RSA PRIVATE KEY-----", in);
} }
@ -87,22 +87,22 @@ namespace Aurora::Crypto::PEM
return ParsePEM("-----BEGIN CERTIFICATE-----", "-----END CERTIFICATE-----", in, out); return ParsePEM("-----BEGIN CERTIFICATE-----", "-----END CERTIFICATE-----", in, out);
} }
AUKN_SYM bool PrivateFromString(const AuString &in, PrivateKey &out) AUKN_SYM bool PrivateFromString(const AuString &in, DerBuffer &out)
{ {
return ParsePEM("-----BEGIN PRIVATE KEY-----", "-----END PRIVATE KEY-----", in, out); return ParsePEM("-----BEGIN PRIVATE KEY-----", "-----END PRIVATE KEY-----", in, out);
} }
AUKN_SYM bool PublicRSAFromString(const AuString &in, PrivateRSAKey &out) AUKN_SYM bool PublicRSAFromString(const AuString &in, DerBuffer &out)
{ {
return ParsePEM("-----BEGIN RSA PUBLIC KEY-----", "-----END RSA PUBLIC KEY-----", in, out); return ParsePEM("-----BEGIN RSA PUBLIC KEY-----", "-----END RSA PUBLIC KEY-----", in, out);
} }
AUKN_SYM bool PrivateRSAFromString(const AuString &in, PublicRSAKey &out) AUKN_SYM bool PrivateRSAFromString(const AuString &in, DerBuffer &out)
{ {
return ParsePEM("-----BEGIN RSA PRIVATE KEY-----", "-----END RSA PRIVATE KEY-----", in, out); return ParsePEM("-----BEGIN RSA PRIVATE KEY-----", "-----END RSA PRIVATE KEY-----", in, out);
} }
AUKN_SYM bool PublicFromString(const AuString &in, PublicKey &out) AUKN_SYM bool PublicFromString(const AuString &in, DerBuffer &out)
{ {
return ParsePEM("-----BEGIN PUBLIC KEY-----", "-----END PUBLIC KEY-----", in, out); return ParsePEM("-----BEGIN PUBLIC KEY-----", "-----END PUBLIC KEY-----", in, out);
} }

View File

@ -158,7 +158,7 @@ namespace Aurora::Crypto::RSA
if (key.meta.side == EKeyType::eKeyPublic) if (key.meta.side == EKeyType::eKeyPublic)
{ {
SysPushErrorArg("Attempted to import a public key as a private key."); SysPushErrorArg("Attempted to import a public key as a private key.");
return false; return nullptr;
} }
if (!ImportRSAKey(in, key)) if (!ImportRSAKey(in, key))