typedef Akenti::CapabilityCertificate* CapCert

A minimal C interface to a capabilty certificate.

Documentation

A minimal C interface to a capabilty certificate. It consists of C-style opaque pointers to a number of C++ classes and C functions to manipulate these pointers.

List of C++ objects that are wrapped:

 
  *       CapabilityCertificate
  *       AkentiPrincipal 
  *       AttributeInfo 
  *       UtcTime
  *       PublicKey
  *       ConditionalActions
  *
  * Usage:                                                       
  *
  *    // CALL BACK FUNCTION.
  *
  *    int doEvaluate(ExprToken op, const AttrInfo info) {
  *        const char* attribute = getAttribute(info);
  *        const char* value = getAttribute(info);
  *
  *        if (...) {
  *          return 1;    // SUCCESS
  *        } else {
  *          return 0;    // FAILURE
  *        }
  *    }
  *
  *    void someFunction() {
  *        CapCert cert = NULL;
  *        AKPrincipal subject;
  *        char* resource;
  *        int version;
  *
  *        if (initFromFile("PEM", "cap", &cert)) {
  *          printf("initFromFile Failed\n");
  *          freeCapCert(cert);
  *          return;
  *        }
  *       
  *        version = getVersionNumber(cert);
  *        resource = (char*) getResource(cert);
  *        subject = (AKPrincipal) getSubject(cert);
  *
  *        ...
  *
  *        if (hasGrantedActions(cert)) {
  *          int size = numOfGrantedActions(cert);
  *
  *          for (int i = 0; i < size; ++i) {
  *             const char* action = grantedActionAt(cert, i); 
  *             ...
  *          }
  *        }
  *
  *        if (hasCondActions(cert)) {
  *          int size = numOfCondActions(cert);
  *          int i;
  *
  *          for (i = 0; i < size; ++i) {
  *             const CondActions condActions = condActionsAt(cert, i);
  *             
  *             if (evaluate(condActions, doEvaluate, NULL)) {
  *               int j;
  *
  *               for (j = 0; j < numOfActions(condActions); ++j) {
  *                  const char* action = actionAt(condActions, j);  //allow this action
  *               }
  *             } else if (isCritical(condActions)) {
  *               // DENY ACCESS 
  *             } 
  *          }
  *        }
  *
  *        freeCapCert(cert);
  *    }
  *
  *                                                             

Alphabetic index HTML hierarchy of classes or Java



This page was generated with the help of DOC++.