namespace Akenti class CertificateCache

A PolicyCollector verifies the Policy and proceeds to collect the UseCondition certificates

Policy(bool isLeaf, const AkentiCertificate& policyCert)
Constructs this object
~Policy()
Destroys this object
bool isLeaf() const
Returns true if this Policy applies to a leaf resource
const string& getResource() const
Returns the name of the resource that this policy applies to
string hashCode() const
Returns the hashCode of the policy certificate contained in this Policy
long getCacheTime() const
Returns the cacheTime in seconds
const AkentiPrincipal& getGuarantor() const
Returns the AkentiPrincipal that issued the policy certificate contained in this Policy
const AkentiCertificate& getPolicyCertificate() const
Returns the policy certificate contained in this Policy
bool isRootPolicy() const
Returns true if the policy certificate contained in this Policy aplies to a root resource
const vector <CertificateAuthorityInfo> & getCertificateAuthorityInfos() const
Returns the CertificateAuthorityInfos trusted by this root Policy
vector <Certificate> getCACerts() const
Returns the CA Certificates trusted by this root Policy
const vector & getIdentityDirectories() const
Returns the directories used to fetch x509 identity certficates
const vector & getAttributeDirectories() const
Returns the directories used to fetch attribute certficates
int numOfUseCondIssuerGroups() const
Returns the number of the UseCondIssuerGroups that are allowed to issue UseCondition certifcates for this resource
const UseCondIssuerGroup& getUseCondIssuerGroup(int groupIndex) const
Returns the UseCondIssuerGroup at index groupIndex
void addUCCertificate(const AkentiCertificate& ucCert)
Adds a UseCondition certificate specified by ucCert to this Policy
const vector & getUCCerts() const
Returns the UseCondition certificates that apply to this Policy
string paramString() const
Returns a string for debugging purposes
PolicyAuthorizer(CertificateCache& cache, Verifier& verifier, const PolicyContext& context)
Constructs this object
bool authorize(set& actions)
Determines the allowable actions
~PolicyAuthorizer()
bool authorize(const Policy& policy, set& actions)
Helper function

Documentation

A PolicyCollector verifies the Policy and proceeds to collect the UseCondition certificates.
Policy(bool isLeaf, const AkentiCertificate& policyCert)
Constructs this object. The policy certificate specified by policyCert must be of type RootPolicy or Policy.
Throws:
Error if policyCert is not intialized or of the wrong type
Parameters:
isLeaf - bool true if this policy applies to a leaf resource
policyCert - AkentiCertificate policy certificate
See Also:
AkentiCertificate
getType()

~Policy()
Destroys this object

bool isLeaf() const
Returns true if this Policy applies to a leaf resource.
Returns:
true if the resource is a leaf, false otherwise

const string& getResource() const
Returns the name of the resource that this policy applies to. This call is redirected to the policy certificate contained in this Policy.
Returns:
the name of the resource
See Also:
getResource()

string hashCode() const
Returns the hashCode of the policy certificate contained in this Policy.
Returns:
the hashCode of the policy certificate
See Also:
hashCode()

long getCacheTime() const
Returns the cacheTime in seconds. This call is redirected to the policy certificate contained in this policy.
Returns:
the cache time in seconds
See Also:
getCacheTime()

const AkentiPrincipal& getGuarantor() const
Returns the AkentiPrincipal that issued the policy certificate contained in this Policy.
Returns:
the issuer of the policy certificate
See Also:
getGuarantor()
AkentiPrincipal

const AkentiCertificate& getPolicyCertificate() const
Returns the policy certificate contained in this Policy.
Returns:
the policy certificate
See Also:
AkentiCertificate

bool isRootPolicy() const
Returns true if the policy certificate contained in this Policy aplies to a root resource.
Returns:
true if the resource is root, false otherwise

const vector <CertificateAuthorityInfo> & getCertificateAuthorityInfos() const
Returns the CertificateAuthorityInfos trusted by this root Policy.
Throws:
Error if this is not a root resource.
Returns:
the CertificateAuthorityInfos trusted by this root resource
See Also:
getCertificateAuthorityInfos()
CertificateAuthorityInfo

vector <Certificate> getCACerts() const
Returns the CA Certificates trusted by this root Policy.
Throws:
Error if this is not a root resource.
Returns:
the certificates of the CAs trusted by this root resource.
See Also:
getCertificateAuthorityInfos()
getCertificate()
Certificate

const vector & getIdentityDirectories() const
Returns the directories used to fetch x509 identity certficates.
Returns:
the x509 certificate directories
See Also:
getIdentityDirectories()
Policy

const vector & getAttributeDirectories() const
Returns the directories used to fetch attribute certficates.
Returns:
the attribute certificate directories
See Also:
getAttributeDirectories()
Directory

int numOfUseCondIssuerGroups() const
Returns the number of the UseCondIssuerGroups that are allowed to issue UseCondition certifcates for this resource.
Returns:
the number of UseCondIssuerGroups
See Also:
getUseCondIssuerGroups()

const UseCondIssuerGroup& getUseCondIssuerGroup(int groupIndex) const
Returns the UseCondIssuerGroup at index groupIndex.
Throws:
Error if groupIndex is out of range
Parameters:
groupIndex - int the index of the UC group
See Also:
getUseCondIssuerGroups()

void addUCCertificate(const AkentiCertificate& ucCert)
Adds a UseCondition certificate specified by ucCert to this Policy.
Throws:
Error if ucCert is not of type UseCondition
See Also:
UseConditionCertificateImpl
getType()

const vector & getUCCerts() const
Returns the UseCondition certificates that apply to this Policy.
Returns:
the UseCondition certificates
See Also:
UseConditionCertificateImpl
AkentiCertificate

string paramString() const
Returns a string for debugging purposes

PolicyAuthorizer(CertificateCache& cache, Verifier& verifier, const PolicyContext& context)
Constructs this object. The CertificateVerifier is used to verify the Attribute Certificates that are used in the decision loop. The CertificateCache is queried for Attribute certificates. If these certificates are not found in the cache, this PolicyAuthorizer collects them and puts them in the cache. The PolicyContext contains the name of the resource, the AkentiPrincipal that is accessing the resource, and all the policy certificates that apply to that resource. The PolicyAuthorizer assumes that all the certificates policy and UseCondition have been found to be trusted.

bool authorize(set& actions)
Determines the allowable actions. Algorithm to determine these actions: For each policy: Evaluate the UseCondition certificates. For each UseCondition: If a UseCondition certificate evaluates to false and enable is true access is denied. If a UseCondition certificate evaluates to true we just add the actions specified by that UseCondition. Otherwise we do nothing. Algorithm to evaluate a UseCondition: The boolean expression specified in the UseCondition is evaluated using short-circuit evaluation. Therefore not all attribute/value pairs are considered. For each attribute/value pair, we have two cases: a) X509 First we check if the CA of the AkentiPrincipal is one of the CAs that can attest to this attribute value pair. Second we check if the DistinguishedName contains the attribute/value pair. b) GENERIC: This involves using attribute certificates. The collection of attribute certificates is essenatially the same as the collection of X509 identity certificates. See CertificateVerifier. The verification has an additional test which makes sure that the issuer of the attribute certificate is one of the issuers for this attribute/value pair.

~PolicyAuthorizer()

Author:
Abdelilah Essiari Srilekha Mudumbai
Version:
1.1 00/05/01
See Also:
Policy
CertificateVerifier
CertificateCache
CacheCertHolder

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de