CSPabstractsession.h   [plain text]


//
// CSP plugin transition layer.
// This file was automatically generated. Do not edit on penalty of futility!
//
#ifndef _H_CSPABSTRACTSESSION
#define _H_CSPABSTRACTSESSION

#include <security_cdsa_plugin/pluginsession.h>
#include <security_cdsa_utilities/cssmdata.h>
#include <security_cdsa_utilities/context.h>
#include <security_cdsa_utilities/cssmacl.h>
#include <security_cdsa_utilities/cssmdb.h>


namespace Security {


//
// A pure abstract class to define the CSP module interface
//
class CSPAbstractPluginSession {
public:
	virtual ~CSPAbstractPluginSession();
  virtual void VerifyMacFinal(CSSM_CC_HANDLE CCHandle,
         const CssmData &Mac) = 0;
  virtual void GenerateRandom(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         CssmData &RandomNumber) = 0;
  virtual void RetrieveUniqueId(CssmData &UniqueID) = 0;
  virtual void SignDataFinal(CSSM_CC_HANDLE CCHandle,
         CssmData &Signature) = 0;
  virtual void VerifyDataUpdate(CSSM_CC_HANDLE CCHandle,
         const CssmData DataBufs[],
         uint32 DataBufCount) = 0;
  virtual void GenerateMac(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         const CssmData DataBufs[],
         uint32 DataBufCount,
         CssmData &Mac) = 0;
  virtual void VerifyMac(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         const CssmData DataBufs[],
         uint32 DataBufCount,
         const CssmData &Mac) = 0;
  virtual void ObtainPrivateKeyFromPublicKey(const CssmKey &PublicKey,
         CssmKey &PrivateKey) = 0;
  virtual void ChangeLoginOwner(const AccessCredentials &AccessCred,
         const CSSM_ACL_OWNER_PROTOTYPE &NewOwner) = 0;
  virtual void SignDataInit(CSSM_CC_HANDLE CCHandle,
         const Context &Context) = 0;
  virtual void DecryptDataInit(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         CSSM_PRIVILEGE Privilege) = 0;
  virtual void EventNotify(CSSM_CONTEXT_EVENT Event,
         CSSM_CC_HANDLE CCHandle,
         const Context &Context) = 0;
  virtual void GetOperationalStatistics(CSPOperationalStatistics &Statistics) = 0;
  virtual void DigestData(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         const CssmData DataBufs[],
         uint32 DataBufCount,
         CssmData &Digest) = 0;
  virtual void GetLoginAcl(const CSSM_STRING *SelectionTag,
         uint32 &NumberOfAclInfos,
         CSSM_ACL_ENTRY_INFO_PTR &AclInfos) = 0;
  virtual void GetKeyOwner(const CssmKey &Key,
         CSSM_ACL_OWNER_PROTOTYPE &Owner) = 0;
  virtual void ChangeKeyOwner(const AccessCredentials &AccessCred,
         const CssmKey &Key,
         const CSSM_ACL_OWNER_PROTOTYPE &NewOwner) = 0;
  virtual void VerifyMacInit(CSSM_CC_HANDLE CCHandle,
         const Context &Context) = 0;
  virtual void DigestDataClone(CSSM_CC_HANDLE CCHandle,
         CSSM_CC_HANDLE ClonedCCHandle) = 0;
  virtual void GenerateMacUpdate(CSSM_CC_HANDLE CCHandle,
         const CssmData DataBufs[],
         uint32 DataBufCount) = 0;
  virtual void EncryptDataFinal(CSSM_CC_HANDLE CCHandle,
         CssmData &RemData) = 0;
  virtual void EncryptDataInit(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         CSSM_PRIVILEGE Privilege) = 0;
  virtual void VerifyData(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         const CssmData DataBufs[],
         uint32 DataBufCount,
         CSSM_ALGORITHMS DigestAlgorithm,
         const CssmData &Signature) = 0;
  virtual void UnwrapKey(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         const CssmKey *PublicKey,
         const CssmKey &WrappedKey,
         uint32 KeyUsage,
         uint32 KeyAttr,
         const CssmData *KeyLabel,
         const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry,
         CssmKey &UnwrappedKey,
         CssmData &DescriptiveData,
         CSSM_PRIVILEGE Privilege) = 0;
  virtual void GenerateMacFinal(CSSM_CC_HANDLE CCHandle,
         CssmData &Mac) = 0;
  virtual void WrapKey(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         const AccessCredentials &AccessCred,
         const CssmKey &Key,
         const CssmData *DescriptiveData,
         CssmKey &WrappedKey,
         CSSM_PRIVILEGE Privilege) = 0;
  virtual void DecryptDataFinal(CSSM_CC_HANDLE CCHandle,
         CssmData &RemData) = 0;
  virtual void SignData(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         const CssmData DataBufs[],
         uint32 DataBufCount,
         CSSM_ALGORITHMS DigestAlgorithm,
         CssmData &Signature) = 0;
  virtual void SignDataUpdate(CSSM_CC_HANDLE CCHandle,
         const CssmData DataBufs[],
         uint32 DataBufCount) = 0;
  virtual void Logout() = 0;
  virtual void DecryptData(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         const CssmData CipherBufs[],
         uint32 CipherBufCount,
         CssmData ClearBufs[],
         uint32 ClearBufCount,
         CSSM_SIZE &bytesDecrypted,
         CssmData &RemData,
         CSSM_PRIVILEGE Privilege) = 0;
  virtual void QueryKeySizeInBits(CSSM_CC_HANDLE CCHandle,
         const Context *Context,
         const CssmKey *Key,
         CSSM_KEY_SIZE &KeySize) = 0;
  virtual void DigestDataInit(CSSM_CC_HANDLE CCHandle,
         const Context &Context) = 0;
  virtual void DigestDataFinal(CSSM_CC_HANDLE CCHandle,
         CssmData &Digest) = 0;
  virtual void Login(const AccessCredentials &AccessCred,
         const CssmData *LoginName,
         const void *Reserved) = 0;
  virtual void ChangeKeyAcl(const AccessCredentials &AccessCred,
         const CSSM_ACL_EDIT &AclEdit,
         const CssmKey &Key) = 0;
  virtual void GetKeyAcl(const CssmKey &Key,
         const CSSM_STRING *SelectionTag,
         uint32 &NumberOfAclInfos,
         CSSM_ACL_ENTRY_INFO_PTR &AclInfos) = 0;
  virtual void GenerateAlgorithmParams(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         uint32 ParamBits,
         CssmData &Param,
         uint32 &NumberOfUpdatedAttibutes,
         CSSM_CONTEXT_ATTRIBUTE_PTR &UpdatedAttributes) = 0;
  virtual void GetLoginOwner(CSSM_ACL_OWNER_PROTOTYPE &Owner) = 0;
  virtual void VerifyDevice(const CssmData &DeviceCert) = 0;
  virtual void EncryptDataUpdate(CSSM_CC_HANDLE CCHandle,
         const CssmData ClearBufs[],
         uint32 ClearBufCount,
         CssmData CipherBufs[],
         uint32 CipherBufCount,
         CSSM_SIZE &bytesEncrypted) = 0;
  virtual void VerifyDataInit(CSSM_CC_HANDLE CCHandle,
         const Context &Context) = 0;
  virtual void DecryptDataUpdate(CSSM_CC_HANDLE CCHandle,
         const CssmData CipherBufs[],
         uint32 CipherBufCount,
         CssmData ClearBufs[],
         uint32 ClearBufCount,
         CSSM_SIZE &bytesDecrypted) = 0;
  virtual void ChangeLoginAcl(const AccessCredentials &AccessCred,
         const CSSM_ACL_EDIT &AclEdit) = 0;
  virtual void DigestDataUpdate(CSSM_CC_HANDLE CCHandle,
         const CssmData DataBufs[],
         uint32 DataBufCount) = 0;
  virtual void GenerateMacInit(CSSM_CC_HANDLE CCHandle,
         const Context &Context) = 0;
  virtual void QuerySize(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         CSSM_BOOL Encrypt,
         uint32 QuerySizeCount,
         QuerySizeData *DataBlock) = 0;
  virtual void RetrieveCounter(CssmData &Counter) = 0;
  virtual void DeriveKey(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         CssmData &Param,
         uint32 KeyUsage,
         uint32 KeyAttr,
         const CssmData *KeyLabel,
         const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry,
         CssmKey &DerivedKey) = 0;
  virtual void GenerateKey(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         uint32 KeyUsage,
         uint32 KeyAttr,
         const CssmData *KeyLabel,
         const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry,
         CssmKey &Key,
         CSSM_PRIVILEGE Privilege) = 0;
  virtual void FreeKey(const AccessCredentials *AccessCred,
         CssmKey &KeyPtr,
         CSSM_BOOL Delete) = 0;
  virtual void PassThrough(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         uint32 PassThroughId,
         const void *InData,
         void **OutData) = 0;
  virtual void VerifyMacUpdate(CSSM_CC_HANDLE CCHandle,
         const CssmData DataBufs[],
         uint32 DataBufCount) = 0;
  virtual void VerifyDataFinal(CSSM_CC_HANDLE CCHandle,
         const CssmData &Signature) = 0;
  virtual void GenerateKeyPair(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         uint32 PublicKeyUsage,
         uint32 PublicKeyAttr,
         const CssmData *PublicKeyLabel,
         CssmKey &PublicKey,
         uint32 PrivateKeyUsage,
         uint32 PrivateKeyAttr,
         const CssmData *PrivateKeyLabel,
         const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry,
         CssmKey &PrivateKey,
         CSSM_PRIVILEGE Privilege) = 0;
  virtual void GetTimeValue(CSSM_ALGORITHMS TimeAlgorithm,
         CssmData &TimeData) = 0;
  virtual void EncryptData(CSSM_CC_HANDLE CCHandle,
         const Context &Context,
         const CssmData ClearBufs[],
         uint32 ClearBufCount,
         CssmData CipherBufs[],
         uint32 CipherBufCount,
         CSSM_SIZE &bytesEncrypted,
         CssmData &RemData,
         CSSM_PRIVILEGE Privilege) = 0;
};

} // end namespace Security

#endif //_H_CSPABSTRACTSESSION