/*** Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: ECC.hpp Date: 2021-7-1 Author: Reece ***/ #pragma once namespace Aurora::Crypto::ECC { #if 0 class IECCPublic { public: virtual bool Verify(const void *hash, AuUInt hashLength, const void *sigBuffer, AuUInt sigLength) = 0; virtual bool Verify(const void *buffer, AuUInt length, const void *sigBuffer, AuUInt sigLength, EHashType method) = 0; virtual bool Verify(const AuList &buffer, const AuList &sig, EHashType method) = 0; virtual bool AsPublicECC(PublicECCKey &out) = 0; }; class IECCPrivate { public: virtual bool Sign(const void *buffer, AuUInt length, EHashType method, AuList &out) = 0; virtual bool Sign(const AuList &in, EHashType method, AuList &out) = 0; virtual bool Sign(const void *hash, AuUInt hashLength, AuList &out) = 0; virtual bool ECDH(IECCPublic *partnerPublic, AuList &sharedKey) = 0; virtual bool AsPublicECC(PublicECCKey &out) = 0; virtual bool AsPrivateECC(PrivateECCKey &out) = 0; }; #endif } #include "25519/25519.hpp" #include "NIST/NIST.hpp"