org.ccnx.ccn.profiles.security.access.group.GroupAccessControlProfile Class Reference

This is a sub-Profile of AccessControlProfile defining naming conventions used in a group-based access control scheme (where one can create Groups of users and other groups, and give rights to nametrees based on group membership). More...

List of all members.

Classes

class  PrincipalInfo
 This class records information about a CCN principal. More...

Static Public Member Functions

static boolean isNodeKeyName (ContentName name)
 Returns whether the specified name is the name of a node key.
static ContentName nodeKeyName (ContentName nodeName)
 Get the name of the node key for a given content node, if there is one.
static ContentName aclName (ContentName nodeName)
 Get the name of the access control list (ACL) for a given content node.
static ContentName aclPostfix ()
static ContentName userNamespaceName (ContentName namespace)
 Get the name of the user namespace.
static ContentName userNamespaceName (ContentName userNamespace, String userName)
 Get the name of the namespace for a specified user.
static ContentName groupNamespaceName (ContentName namespace)
 Get the name of the group namespace.
static ContentName groupName (ContentName namespace, String groupFriendlyName)
 Get the name of the namespace for a specified group.
static ContentName groupPublicKeyName (ParameterizedName groupStorage, String groupFriendlyName)
 Get the name of a group public key.
static ContentName groupPublicKeyName (ParameterizedName groupStorage, ContentName groupFullName)
 Get the name of the public key of a group specified by its full name.
static ContentName userPublicKeyName (ParameterizedName userStorage, ContentName userName)
static ContentName groupMembershipListName (ParameterizedName groupNamespaceName, String groupFriendlyName)
 Get the name of a group membership list for a specified group.
static String groupNameToFriendlyName (ContentName groupName)
 Get the friendly name of a specified group.
static ContentName groupPrivateKeyDirectory (ContentName groupPublicKeyNameAndVersion)
 Get the name of a group private key key directory (containing the encrypted key blocks).
static ContentName groupPrivateKeyBlockName (ContentName groupPublicKeyNameAndVersion)
 Get the name of the private key block in a group private key directory, without version; useful for checking cache status.
static ContentName groupPointerToParentGroupName (ContentName groupFullName)

Static Public Attributes

static final String GROUP_PREFIX = "Groups"
static final byte[] GROUP_PREFIX_BYTES = ContentName.componentParseNative(GROUP_PREFIX)
static final String USER_PREFIX = "Users"
static final byte[] USER_PREFIX_BYTES = ContentName.componentParseNative(USER_PREFIX)
static final String GROUP_LABEL = "Group"
static final String USER_LABEL = "User"
static final String GROUP_MEMBERSHIP_LIST_NAME = "MembershipList"
static final String GROUP_POINTER_TO_PARENT_GROUP_NAME = "PointerToParentGroup"
static final String ACL_NAME = "ACL"
static final byte[] ACL_NAME_BYTES = ContentName.componentParseNative(ACL_NAME)
static final String NODE_KEY_NAME = "NK"
static final byte[] NODE_KEY_NAME_BYTES = ContentName.componentParseNative(NODE_KEY_NAME)
static final byte[] USER_PRINCIPAL_PREFIX = ContentName.componentParseNative("p")
static final byte[] GROUP_PRINCIPAL_PREFIX = ContentName.componentParseNative("g")
static final ContentName ACL_POSTFIX = new ContentName(new byte[][]{ACCESS_CONTROL_MARKER_BYTES, ACL_NAME_BYTES})

Detailed Description

This is a sub-Profile of AccessControlProfile defining naming conventions used in a group-based access control scheme (where one can create Groups of users and other groups, and give rights to nametrees based on group membership).

For descriptions of data, and how this access control system functions, see the separate CCNx Access Control Specifications Document.

This class specifies how a number of access control elements are named:


Member Function Documentation

static ContentName org.ccnx.ccn.profiles.security.access.group.GroupAccessControlProfile.aclName ( ContentName  nodeName  )  [static]

Get the name of the access control list (ACL) for a given content node.

This is nodeName/<access marker>="">/ACL.

Parameters:
nodeName the name of the content node
Returns:
the name of the corresponding ACL
static ContentName org.ccnx.ccn.profiles.security.access.group.GroupAccessControlProfile.groupMembershipListName ( ParameterizedName  groupNamespaceName,
String  groupFriendlyName 
) [static]

Get the name of a group membership list for a specified group.

Parameters:
groupNamespaceName the namespace of the group
groupFriendlyName the name of the group
Returns:
the name of the group membership list
static ContentName org.ccnx.ccn.profiles.security.access.group.GroupAccessControlProfile.groupName ( ContentName  namespace,
String  groupFriendlyName 
) [static]

Get the name of the namespace for a specified group.

Parameters:
namespace the top-level namespace
groupFriendlyName the name of the group
Returns:
the name of the namespace for the group
static ContentName org.ccnx.ccn.profiles.security.access.group.GroupAccessControlProfile.groupNamespaceName ( ContentName  namespace  )  [static]

Get the name of the group namespace.

This assumes a top-level namespace, where the group information is stored in namespace/Groups and namespace/Users..

Parameters:
namespace the top-level name space
Returns:
the name of the group namespace
static String org.ccnx.ccn.profiles.security.access.group.GroupAccessControlProfile.groupNameToFriendlyName ( ContentName  groupName  )  [static]

Get the friendly name of a specified group.

Parameters:
groupName the full name of the group
Returns:
the friendly name of the group
static ContentName org.ccnx.ccn.profiles.security.access.group.GroupAccessControlProfile.groupPrivateKeyBlockName ( ContentName  groupPublicKeyNameAndVersion  )  [static]

Get the name of the private key block in a group private key directory, without version; useful for checking cache status.

Parameters:
groupFullName 
Returns:
static ContentName org.ccnx.ccn.profiles.security.access.group.GroupAccessControlProfile.groupPrivateKeyDirectory ( ContentName  groupPublicKeyNameAndVersion  )  [static]

Get the name of a group private key key directory (containing the encrypted key blocks).

We hang the wrapped private key directly off the public key version.

Parameters:
groupPublicKeyNameAndVersion the versioned name of the group public key
Returns:
the versioned name of the group private key
static ContentName org.ccnx.ccn.profiles.security.access.group.GroupAccessControlProfile.groupPublicKeyName ( ParameterizedName  groupStorage,
ContentName  groupFullName 
) [static]

Get the name of the public key of a group specified by its full name.

Parameters:
groupFullName the full name of the group
Returns:
the name of the group public key
static ContentName org.ccnx.ccn.profiles.security.access.group.GroupAccessControlProfile.groupPublicKeyName ( ParameterizedName  groupStorage,
String  groupFriendlyName 
) [static]

Get the name of a group public key.

This is the unversioned root. The actual public key is stored at the latest version of this name. The private key and decoding blocks are stored under that version, with the segments of the group public key.

Parameters:
groupNamespaceName the namespace of the group
groupFriendlyName the name of the group
Returns:
the name of the group public key
static boolean org.ccnx.ccn.profiles.security.access.group.GroupAccessControlProfile.isNodeKeyName ( ContentName  name  )  [static]

Returns whether the specified name is the name of a node key.

Parameters:
name the name
Returns:
static ContentName org.ccnx.ccn.profiles.security.access.group.GroupAccessControlProfile.nodeKeyName ( ContentName  nodeName  )  [static]

Get the name of the node key for a given content node, if there is one.

This is nodeName/<access marker>="">/NK, with a version then added for a specific node key.

Parameters:
nodeName the name of the content node
Returns:
the name of the corresponding node key
static ContentName org.ccnx.ccn.profiles.security.access.group.GroupAccessControlProfile.userNamespaceName ( ContentName  userNamespace,
String  userName 
) [static]

Get the name of the namespace for a specified user.

Parameters:
userNamespace the name of the user namespace
userName the user name
Returns:
the name of the namespace for the user
static ContentName org.ccnx.ccn.profiles.security.access.group.GroupAccessControlProfile.userNamespaceName ( ContentName  namespace  )  [static]

Get the name of the user namespace.

This assumes a top-level namespace, where the group information is stored in namespace/Groups and namespace/Users..

Parameters:
namespace the top-level name space
Returns:
the name of the user namespace

The documentation for this class was generated from the following file:
Generated on Fri May 13 16:27:49 2011 for Content-Centric Networking in Java by  doxygen 1.6.3