// CkEdDSAW.h: interface for the CkEdDSAW class. // ////////////////////////////////////////////////////////////////////// // This header is generated for Chilkat 11.3.0 #ifndef _CkEdDSAW_H #define _CkEdDSAW_H #include "chilkatDefs.h" #include "CkString.h" #include "CkWideCharBase.h" class CkPrngW; class CkPrivateKeyW; class CkPublicKeyW; class CkBinDataW; #if !defined(__sun__) && !defined(__sun) #pragma pack (push, 8) #endif // CLASS: CkEdDSAW class CK_VISIBLE_PUBLIC CkEdDSAW : public CkWideCharBase { private: // Don't allow assignment or copying these objects. CkEdDSAW(const CkEdDSAW &); CkEdDSAW &operator=(const CkEdDSAW &); public: CkEdDSAW(void); virtual ~CkEdDSAW(void); static CkEdDSAW *createNew(void); void CK_VISIBLE_PRIVATE inject(void *impl); // May be called when finished with the object to free/dispose of any // internal resources held by the object. void dispose(void); // BEGIN PUBLIC INTERFACE // ---------------------- // Properties // ---------------------- // Can be Ed25519 , Ed25519ph , or Ed25519ctx . The default is Ed25519 . This // property was introduced in v9.5.0.91. Prior to this version, Ed25519 was the // only EdDSA instance supported. void get_Algorithm(CkString &str); // Can be Ed25519 , Ed25519ph , or Ed25519ctx . The default is Ed25519 . This // property was introduced in v9.5.0.91. Prior to this version, Ed25519 was the // only EdDSA instance supported. const wchar_t *algorithm(void); // Can be Ed25519 , Ed25519ph , or Ed25519ctx . The default is Ed25519 . This // property was introduced in v9.5.0.91. Prior to this version, Ed25519 was the // only EdDSA instance supported. void put_Algorithm(const wchar_t *newVal); // The context bytes (in hex string format) to be used for Ed25519ctx or Ed25519ph. void get_Context(CkString &str); // The context bytes (in hex string format) to be used for Ed25519ctx or Ed25519ph. const wchar_t *context(void); // The context bytes (in hex string format) to be used for Ed25519ctx or Ed25519ph. void put_Context(const wchar_t *newVal); // ---------------------- // Methods // ---------------------- // Generates an Ed25519 key. privKey is an output argument. The generated key is // created in privKey. bool GenEd25519Key(CkPrngW &prng, CkPrivateKeyW &privKey); // Computes a shared secret given a private and public key. For example, Alice and // Bob can compute the identical shared secret by doing the following: Alice sends // Bob her public key, and Bob calls SharedSecretENC with his private key and // Alice's public key. Bob sends Alice his public key, and Alice calls // SharedSecretENC with her private key and Bob's public key. Both calls to // SharedSecretENC will produce the same result. The resulting bytes are returned // in encoded string form (hex, base64, etc) as specified by encoding. bool SharedSecretENC(CkPrivateKeyW &privkey, CkPublicKeyW &pubkey, const wchar_t *encoding, CkString &outStr); // Computes a shared secret given a private and public key. For example, Alice and // Bob can compute the identical shared secret by doing the following: Alice sends // Bob her public key, and Bob calls SharedSecretENC with his private key and // Alice's public key. Bob sends Alice his public key, and Alice calls // SharedSecretENC with her private key and Bob's public key. Both calls to // SharedSecretENC will produce the same result. The resulting bytes are returned // in encoded string form (hex, base64, etc) as specified by encoding. const wchar_t *sharedSecretENC(CkPrivateKeyW &privkey, CkPublicKeyW &pubkey, const wchar_t *encoding); // Signs the contents of bd and returns the signature according to encoding. The // encoding can be any encoding supported by Chilkat, such as hex , base64 , etc. bool SignBdENC(CkBinDataW &bd, const wchar_t *encoding, CkPrivateKeyW &privkey, CkString &outStr); // Signs the contents of bd and returns the signature according to encoding. The // encoding can be any encoding supported by Chilkat, such as hex , base64 , etc. const wchar_t *signBdENC(CkBinDataW &bd, const wchar_t *encoding, CkPrivateKeyW &privkey); // Verifies the signature against the contents of bd. The encodedSig is passed as an // encoded string (such as hex, base64, etc.) using the encoding specified by enocding. // The pubkey contains the Ed25519 public key used to verify. bool VerifyBdENC(CkBinDataW &bd, const wchar_t *encodedSig, const wchar_t *enocding, CkPublicKeyW &pubkey); // END PUBLIC INTERFACE }; #if !defined(__sun__) && !defined(__sun) #pragma pack (pop) #endif #endif