#pragma once namespace Aurora::Crypto::ECC { struct PrivateECCImpl : IECCPrivate { PrivateECCImpl(EECCCurve type, ecc_key &key); ~PrivateECCImpl(); bool Sign(const Memory::MemoryViewRead &plainText, Aurora::Hashing::EHashType method, Memory::ByteBuffer &out) override; bool Sign(const Memory::MemoryViewRead &hash, Memory::ByteBuffer &out) override; bool ECDH(const AuSPtr &partnerPublic, Memory::ByteBuffer &sharedKey) override; bool AsPublicECC(Memory::ByteBuffer &out) override; bool AsPrivateECC(Memory::ByteBuffer &out) override; EECCCurve GetType() override; private: ecc_key _key; EECCCurve _type; }; }