273 lines
10 KiB
C
273 lines
10 KiB
C
|
|
// CkSecretsW.h: interface for the CkSecretsW class.
|
||
|
|
//
|
||
|
|
//////////////////////////////////////////////////////////////////////
|
||
|
|
|
||
|
|
// This header is generated for Chilkat 11.3.0
|
||
|
|
|
||
|
|
#ifndef _CkSecretsW_H
|
||
|
|
#define _CkSecretsW_H
|
||
|
|
|
||
|
|
#include "chilkatDefs.h"
|
||
|
|
#include "CkString.h"
|
||
|
|
#include "CkClassWithCallbacksW.h"
|
||
|
|
|
||
|
|
class CkJsonObjectW;
|
||
|
|
class CkTaskW;
|
||
|
|
class CkBinDataW;
|
||
|
|
class CkStringBuilderW;
|
||
|
|
class CkBaseProgressW;
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
#if !defined(__sun__) && !defined(__sun)
|
||
|
|
#pragma pack (push, 8)
|
||
|
|
#endif
|
||
|
|
|
||
|
|
|
||
|
|
// CLASS: CkSecretsW
|
||
|
|
class CK_VISIBLE_PUBLIC CkSecretsW : public CkClassWithCallbacksW
|
||
|
|
{
|
||
|
|
private:
|
||
|
|
bool m_cbOwned;
|
||
|
|
|
||
|
|
private:
|
||
|
|
|
||
|
|
// Don't allow assignment or copying these objects.
|
||
|
|
CkSecretsW(const CkSecretsW &);
|
||
|
|
CkSecretsW &operator=(const CkSecretsW &);
|
||
|
|
|
||
|
|
public:
|
||
|
|
CkSecretsW(void);
|
||
|
|
virtual ~CkSecretsW(void);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
static CkSecretsW *createNew(void);
|
||
|
|
|
||
|
|
|
||
|
|
CkSecretsW(bool bCallbackOwned);
|
||
|
|
static CkSecretsW *createNew(bool bCallbackOwned);
|
||
|
|
|
||
|
|
|
||
|
|
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);
|
||
|
|
|
||
|
|
CkBaseProgressW *get_EventCallbackObject(void) const;
|
||
|
|
void put_EventCallbackObject(CkBaseProgressW *progress);
|
||
|
|
|
||
|
|
|
||
|
|
// BEGIN PUBLIC INTERFACE
|
||
|
|
|
||
|
|
// ----------------------
|
||
|
|
// Properties
|
||
|
|
// ----------------------
|
||
|
|
// The AutoSplit property is specific to local_manager secrets on Windows. The
|
||
|
|
// Windows Credentials Manager supports a maximum of 2560 bytes per secret. If a
|
||
|
|
// secret exceeds this size, it will be automatically compressed and split when
|
||
|
|
// created or updated, and automatically recomposed when retrieved.
|
||
|
|
//
|
||
|
|
// A secret can be split into a maximum of 10 parts.
|
||
|
|
//
|
||
|
|
// The default value is true.
|
||
|
|
//
|
||
|
|
bool get_AutoSplit(void);
|
||
|
|
// The AutoSplit property is specific to local_manager secrets on Windows. The
|
||
|
|
// Windows Credentials Manager supports a maximum of 2560 bytes per secret. If a
|
||
|
|
// secret exceeds this size, it will be automatically compressed and split when
|
||
|
|
// created or updated, and automatically recomposed when retrieved.
|
||
|
|
//
|
||
|
|
// A secret can be split into a maximum of 10 parts.
|
||
|
|
//
|
||
|
|
// The default value is true.
|
||
|
|
//
|
||
|
|
void put_AutoSplit(bool newVal);
|
||
|
|
|
||
|
|
// If set to true, then the contents of the secret will be stored compressed. The
|
||
|
|
// default value of this property is false.
|
||
|
|
bool get_Compression(void);
|
||
|
|
// If set to true, then the contents of the secret will be stored compressed. The
|
||
|
|
// default value of this property is false.
|
||
|
|
void put_Compression(bool newVal);
|
||
|
|
|
||
|
|
// The location of the secrets. Possible values are:
|
||
|
|
// * local_manager - On Windows this is the Credentials Manager. On MacOS and
|
||
|
|
// iOS it is the Keychain. This is not yet an option on Linux or Android.
|
||
|
|
// * aws_secrets_manager - AWS Secrets Manager
|
||
|
|
// * azure_key_vault - Azure Key Vault
|
||
|
|
// * ibm_cloud - IBM Cloud Secrets Manager
|
||
|
|
// * oracle_cloud - Oracle Cloud Secrets
|
||
|
|
// * doppler - Doppler Secrets
|
||
|
|
// * memory - In-Memory Secrets
|
||
|
|
//
|
||
|
|
// The default location is the local_manager . On Linux and Android, local_manager
|
||
|
|
// will behave the same as memory .
|
||
|
|
//
|
||
|
|
void get_Location(CkString &str);
|
||
|
|
// The location of the secrets. Possible values are:
|
||
|
|
// * local_manager - On Windows this is the Credentials Manager. On MacOS and
|
||
|
|
// iOS it is the Keychain. This is not yet an option on Linux or Android.
|
||
|
|
// * aws_secrets_manager - AWS Secrets Manager
|
||
|
|
// * azure_key_vault - Azure Key Vault
|
||
|
|
// * ibm_cloud - IBM Cloud Secrets Manager
|
||
|
|
// * oracle_cloud - Oracle Cloud Secrets
|
||
|
|
// * doppler - Doppler Secrets
|
||
|
|
// * memory - In-Memory Secrets
|
||
|
|
//
|
||
|
|
// The default location is the local_manager . On Linux and Android, local_manager
|
||
|
|
// will behave the same as memory .
|
||
|
|
//
|
||
|
|
const wchar_t *location(void);
|
||
|
|
// The location of the secrets. Possible values are:
|
||
|
|
// * local_manager - On Windows this is the Credentials Manager. On MacOS and
|
||
|
|
// iOS it is the Keychain. This is not yet an option on Linux or Android.
|
||
|
|
// * aws_secrets_manager - AWS Secrets Manager
|
||
|
|
// * azure_key_vault - Azure Key Vault
|
||
|
|
// * ibm_cloud - IBM Cloud Secrets Manager
|
||
|
|
// * oracle_cloud - Oracle Cloud Secrets
|
||
|
|
// * doppler - Doppler Secrets
|
||
|
|
// * memory - In-Memory Secrets
|
||
|
|
//
|
||
|
|
// The default location is the local_manager . On Linux and Android, local_manager
|
||
|
|
// will behave the same as memory .
|
||
|
|
//
|
||
|
|
void put_Location(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// This is a catch-all property to be used for uncommon needs. This property
|
||
|
|
// defaults to the empty string and should typically remain empty.
|
||
|
|
void get_UncommonOptions(CkString &str);
|
||
|
|
// This is a catch-all property to be used for uncommon needs. This property
|
||
|
|
// defaults to the empty string and should typically remain empty.
|
||
|
|
const wchar_t *uncommonOptions(void);
|
||
|
|
// This is a catch-all property to be used for uncommon needs. This property
|
||
|
|
// defaults to the empty string and should typically remain empty.
|
||
|
|
void put_UncommonOptions(const wchar_t *newVal);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// ----------------------
|
||
|
|
// Methods
|
||
|
|
// ----------------------
|
||
|
|
// Deletes a secret. Cloud secrets managers will typically disable the secret and
|
||
|
|
// schedule the secret for deletion after some number of days.
|
||
|
|
bool DeleteSecret(CkJsonObjectW &jsonId);
|
||
|
|
|
||
|
|
// Creates an asynchronous task to call the DeleteSecret method with the arguments
|
||
|
|
// provided.
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkTaskW *DeleteSecretAsync(CkJsonObjectW &jsonId);
|
||
|
|
|
||
|
|
// Fetches a binary secret and returns the content in bd.
|
||
|
|
bool GetSecretBd(CkJsonObjectW &jsonId, CkBinDataW &bd);
|
||
|
|
|
||
|
|
// Creates an asynchronous task to call the GetSecretBd method with the arguments
|
||
|
|
// provided.
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkTaskW *GetSecretBdAsync(CkJsonObjectW &jsonId, CkBinDataW &bd);
|
||
|
|
|
||
|
|
// Fetches a JSON secret and returns the content in jsonOut.
|
||
|
|
bool GetSecretJson(CkJsonObjectW &jsonId, CkJsonObjectW &jsonOut);
|
||
|
|
|
||
|
|
// Creates an asynchronous task to call the GetSecretJson method with the arguments
|
||
|
|
// provided.
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkTaskW *GetSecretJsonAsync(CkJsonObjectW &jsonId, CkJsonObjectW &jsonOut);
|
||
|
|
|
||
|
|
// Fetches a string secret and returns the content in sb.
|
||
|
|
bool GetSecretSb(CkJsonObjectW &jsonId, CkStringBuilderW &sb);
|
||
|
|
|
||
|
|
// Creates an asynchronous task to call the GetSecretSb method with the arguments
|
||
|
|
// provided.
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkTaskW *GetSecretSbAsync(CkJsonObjectW &jsonId, CkStringBuilderW &sb);
|
||
|
|
|
||
|
|
// Fetches a string secret and returns the content of the secret.
|
||
|
|
bool GetSecretStr(CkJsonObjectW &jsonId, CkString &outStr);
|
||
|
|
// Fetches a string secret and returns the content of the secret.
|
||
|
|
const wchar_t *getSecretStr(CkJsonObjectW &jsonId);
|
||
|
|
// Fetches a string secret and returns the content of the secret.
|
||
|
|
const wchar_t *secretStr(CkJsonObjectW &jsonId);
|
||
|
|
|
||
|
|
// Creates an asynchronous task to call the GetSecretStr method with the arguments
|
||
|
|
// provided.
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkTaskW *GetSecretStrAsync(CkJsonObjectW &jsonId);
|
||
|
|
|
||
|
|
// Lists secrets matching the wildcarded or exact values passed in json. The
|
||
|
|
// results of the query are returned in jsonOut.
|
||
|
|
bool ListSecrets(CkJsonObjectW &json, CkJsonObjectW &jsonOut);
|
||
|
|
|
||
|
|
// Creates an asynchronous task to call the ListSecrets method with the arguments
|
||
|
|
// provided.
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkTaskW *ListSecretsAsync(CkJsonObjectW &json, CkJsonObjectW &jsonOut);
|
||
|
|
|
||
|
|
// Accessing a cloud-based secrets manager requires authentication credentials,
|
||
|
|
// which cannot be stored in the manager itself. Instead, they must be securely
|
||
|
|
// stored locally.
|
||
|
|
//
|
||
|
|
// One solution is to store the authentication credentials as a secret in the
|
||
|
|
// Windows Credentials Manager or Apple Keychain. These credentials serve as the
|
||
|
|
// bootstrap secret for authenticating with the cloud-based secrets manager.
|
||
|
|
//
|
||
|
|
// jsonId contains the name of the bootstrap secret. secretContent contains the bootstrap's
|
||
|
|
// secret content.
|
||
|
|
//
|
||
|
|
bool SetBootstrapSecret(CkJsonObjectW &jsonId, CkSecretsW &secretContent);
|
||
|
|
|
||
|
|
// Creates a binary secret if it does not yet exist, or updates an existing secret.
|
||
|
|
// The name of the secret is specified in jsonId, and the binary content of the
|
||
|
|
// secret in secret.
|
||
|
|
bool UpdateSecretBd(CkJsonObjectW &jsonId, CkBinDataW &secret);
|
||
|
|
|
||
|
|
// Creates an asynchronous task to call the UpdateSecretBd method with the
|
||
|
|
// arguments provided.
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkTaskW *UpdateSecretBdAsync(CkJsonObjectW &jsonId, CkBinDataW &secret);
|
||
|
|
|
||
|
|
// Creates a JSON secret if it does not yet exist, or updates an existing secret.
|
||
|
|
// The name of the secret is specified in jsonId, and the JSON content of the secret
|
||
|
|
// in secret.
|
||
|
|
bool UpdateSecretJson(CkJsonObjectW &jsonId, CkJsonObjectW &secret);
|
||
|
|
|
||
|
|
// Creates an asynchronous task to call the UpdateSecretJson method with the
|
||
|
|
// arguments provided.
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkTaskW *UpdateSecretJsonAsync(CkJsonObjectW &jsonId, CkJsonObjectW &secret);
|
||
|
|
|
||
|
|
// Creates a string secret if it does not yet exist, or updates an existing secret.
|
||
|
|
// The name of the secret is specified in jsonId, and the string content of the
|
||
|
|
// secret in sb.
|
||
|
|
bool UpdateSecretSb(CkJsonObjectW &jsonId, CkStringBuilderW &sb);
|
||
|
|
|
||
|
|
// Creates an asynchronous task to call the UpdateSecretSb method with the
|
||
|
|
// arguments provided.
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkTaskW *UpdateSecretSbAsync(CkJsonObjectW &jsonId, CkStringBuilderW &sb);
|
||
|
|
|
||
|
|
// Creates a string secret if it does not yet exist, or updates an existing secret.
|
||
|
|
// The name of the secret is specified in jsonId, and the string content of the
|
||
|
|
// secret in secret.
|
||
|
|
bool UpdateSecretStr(CkJsonObjectW &jsonId, const wchar_t *secret);
|
||
|
|
|
||
|
|
// Creates an asynchronous task to call the UpdateSecretStr method with the
|
||
|
|
// arguments provided.
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkTaskW *UpdateSecretStrAsync(CkJsonObjectW &jsonId, const wchar_t *secret);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// END PUBLIC INTERFACE
|
||
|
|
|
||
|
|
|
||
|
|
};
|
||
|
|
#if !defined(__sun__) && !defined(__sun)
|
||
|
|
#pragma pack (pop)
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif
|