#ifndef _ACL_PASSWORD
#define _ACL_PASSWORD
#include <Security/cssmdata.h>
#include <Security/cssmacl.h>
#include <string>
#ifdef _CPP_ACL_PASSWORD
#pragma export on
#endif
namespace Security
{
class PasswordAclSubject : public SimpleAclSubject {
public:
bool validate(const AclValidationContext &baseCtx, const TypedList &sample) const;
CssmList toList(CssmAllocator &alloc) const;
PasswordAclSubject(CssmAllocator &alloc, const CssmData &password);
PasswordAclSubject(CssmAllocator &alloc, CssmManagedData &password);
CssmAllocator &allocator;
void exportBlob(Writer::Counter &pub, Writer::Counter &priv);
void exportBlob(Writer &pub, Writer &priv);
IFDUMP(void debugDump() const);
class Maker : public AclSubject::Maker {
public:
Maker() : AclSubject::Maker(CSSM_ACL_SUBJECT_TYPE_PASSWORD) { }
PasswordAclSubject *make(const TypedList &list) const;
PasswordAclSubject *make(Version, Reader &pub, Reader &priv) const;
};
private:
CssmAutoData mPassword;
};
}
#ifdef _CPP_ACL_PASSWORD
#pragma export off
#endif
#endif //_ACL_PASSWORD