tech-invite   World Map     

IETF     RFCs     Groups     SIP     ABNFs    |    3GPP     Specs     Glossaries     Architecture     IMS     UICC    |    search

RFC 2244

 
 
 

ACAP -- Application Configuration Access Protocol

Part 3 of 3, p. 53 to 71
Prev RFC Part

 


prevText      Top      Up      ToC       Page 53 
7.       Registration Procedures

   ACAP's usefulness comes from providing a structured storage model for
   all sorts of configuration data.  However, for its potential to be
   achieved, it is important that the Internet community strives for the
   following goals:

Top      Up      ToC       Page 54 
   (1) Standardization.  It is very important to standardize dataset
   classes.  The authors hope that ACAP achieves the success that SNMP
   has seen with the definition of numerous standards track MIBs.

   (2) Community Review.  In the absence of standardization, it is
   important to get community review on a proposal to improve its
   engineering quality.  Community review is strongly recommended prior
   to registration.  The ACAP implementors mailing list
   <ietf-acap@andrew.cmu.edu> should be used for this purpose.

   (3) Registration.  Registration serves a two-fold purpose.  First it
   prevents use of the same name for different purposes, and second it
   provides a one-stop list which can be used to locate existing
   extensions or dataset classes to prevent duplicate work.

   The following registration templates may be used to register ACAP
   protocol elements with the Internet Assigned Numbers Authority
   (IANA).

7.1.     ACAP Capabilities

   New ACAP capabilities MUST be registered prior to use.  Careful
   consideration should be made before extending the protocol, as it can
   lead to complexity or interoperability problems.  Review of proposals
   on the acap implementors mailing list is strongly encouraged prior to
   registration.

   To: iana@iana.org
   Subject: Registration of ACAP capability

   Capability name:

   Capability keyword:

   Capability arguments:

   Published Specification(s):

   (Optional, but strongly encouraged)

   Person and email address to contact for further information:

7.2.     ACAP Response Codes

   ACAP response codes are registered on a first come, first served
   basis.  Review of proposals on the acap implementors mailing list is
   strongly encouraged prior to registration.

Top      Up      ToC       Page 55 
   To: iana@iana.org
   Subject: Registration of ACAP response code

   Response Code:

   Arguments (use ABNF to specify syntax):

   Purpose:

   Published Specification(s):

   (Optional, but strongly encouraged)

   Person and email address to contact for further information:

7.3.     Dataset Classes

   A dataset class provides a core set of attributes for use in a
   specified hierarchy.  It may also define rules for the dataset
   hierarchy underneath that class.  Dataset class specifications must
   be standards track or IESG approved experimental RFCs.

   To: iana@iana.org
   Subject: Registration of ACAP dataset class

   Dataset class name/attribute prefix:

   Purpose:

   Published Specification(s):

   (Standards track or IESG approved experimental RFC)

   Person and email address to contact for further information:

7.4.     Vendor Subtree

   Vendors may reserve a portion of the ACAP namespace for private use.
   Dataset class names beginning with "vendor.<company/product name>."
   are reserved for use by that company or product.  In addition, all
   attribute names beginning with "vendor.<company/product name>." are
   reserved for use by that company or product once registered.
   Registration is on a first come, first served basis.  Whenever
   possible, private attributes and dataset classes should be avoided in
   favor of improving interoperable dataset class definitions.

Top      Up      ToC       Page 56 
   To: iana@iana.org
   Subject: Registration of ACAP vendor subtree

   Private Prefix: vendor.<company/product name>.

   Person and email address to contact for further information:

   (company names and addresses should be included when appropriate)

8.       Formal Syntax

   The following syntax specification uses the augmented Backus-Naur
   Form (BNF) notation as specified in [ABNF].  This uses the ABNF core
   rules as specified in Appendix A of the ABNF specification [ABNF].

   Except as noted otherwise, all alphabetic characters are
   case-insensitive.  The use of upper or lower case characters to
   define token strings is for editorial clarity only.  Implementations
   MUST accept these strings in a case-insensitive fashion.

   The "initial-greeting" rule below defines the initial ACAP greeting
   from the server.  The "command" rule below defines the syntax for
   commands sent by the client.  The "response" rule below defines the
   syntax for responses sent by the server.

   ATOM-CHAR          = "!" / %x23-27 / %x2A-5B / %x5D-7A / %x7C-7E
                        ;; Any CHAR except ATOM-SPECIALS

   ATOM-SPECIALS      = "(" / ")" / "{" / SP / CTL / QUOTED-SPECIALS

   CHAR               = %x01-7F

   DIGIT-NZ           = %x31-39
                        ; non-zero digits ("1" - "9")

   QUOTED-CHAR        = SAFE-UTF8-CHAR / "\" QUOTED-SPECIALS

   QUOTED-SPECIALS    = <"> / "\"

   SAFE-CHAR          = %x01-09 / %x0B-0C / %x0E-21 /
                        %x23-5B / %x5D-7F
                        ;; any TEXT-CHAR except QUOTED-SPECIALS

   SAFE-UTF8-CHAR     = SAFE-CHAR / UTF8-2 / UTF8-3 / UTF8-4 /
                        UTF8-5 / UTF8-6

   TAG-CHAR           = %x21 / %x23-27 / %x2C-5B / %x5D-7A / %x7C-7E
                        ;; Any ATOM-CHAR except "*" or "+"

Top      Up      ToC       Page 57 
   TEXT-CHAR          = %x01-09 / %x0B-0C / %x0E-7F
                        ;; any CHAR except CR and LF

   TEXT-UTF8-CHAR     = SAFE-UTF8-CHAR / QUOTED-SPECIALS

   UTF8-1             = %x80-BF

   UTF8-2             = %xC0-DF UTF8-1

   UTF8-3             = %xE0-EF 2UTF8-1

   UTF8-4             = %xF0-F7 3UTF8-1

   UTF8-5             = %xF8-FB 4UTF8-1

   UTF8-6             = %xFC-FD 5UTF8-1

   UTF8-CHAR          = TEXT-UTF8-CHAR / CR / LF

   acl                = "(" [acl-identrights *(SP acl-identrights)] ")"
                        *(SPACE acl-identrights)] ")"

   acl-identifier     = string-utf8
                        ;; MUST NOT contain HTAB

   acl-identrights    = string-utf8
                        ;; The identifier followed by a HTAB,
                        ;; followed by the rights.

   acl-delobject      = "(" dataset SP attribute [SP entry-name] ")"

   acl-object         = "(" dataset [SP attribute [SP entry-name]] ")"

   acl-rights         = quoted

   atom               = ALPHA *1023ATOM-CHAR

   attribute          = string-utf8
                        ;; dot-separated attribute name
                        ;; MUST NOT contain "*" or "%"

   attribute-store    = attribute SP (value-nildef /
                        "(" 1*(metadata-write-q SP value-store) ")")
                        ;; MUST NOT include the same metadata twice

   auth-type          = <"> auth-type-name <">

Top      Up      ToC       Page 58 
   auth-type-name     = iana-token
                        ;; as defined in SASL [SASL]

   command            = tag SP (command-any / command-auth /
                        command-nonauth) CRLF
                        ;; Modal based on state

   command-authent    = "AUTHENTICATE" SP auth-type
                        [SP string] *(CRLF string)

   command-any        = "NOOP" / command-lang / "LOGOUT" /
                        command-extend

   command-auth       = command-delacl / command-dsince /
                        command-freectx / command-getquota /
                        command-lrights / command-myrights /
                        command-search / command-setacl /
                        command-store
                        ;; only valid in authenticated state

   command-delacl     = "DELETEACL" SP acl-delobject [SP acl-identifier]

   command-dsince     = "DELETEDSINCE" SP dataset SP time

   command-extend     = extend-token [SP extension-data]

   command-freectx    = "FREECONTEXT" SP context

   command-getquota   = "GETQUOTA" SP dataset

   command-lang       = "LANG" *(SP lang-tag)

   command-lrights    = "LISTRIGHTS" SP acl-object

   command-myrights   = "MYRIGHTS" SP acl-object

   command-nonauth    = command-authent
                        ;; only valid in non-authenticated state

   command-search     = "SEARCH" SP (dataset / context)
                        *(SP search-modifier) SP search-criteria
                        ;; MUST NOT include same search-modifier twice

   command-setacl     = "SETACL" SP acl-object SP acl-identifier
                        SP acl-rights

   command-store      = "STORE" SP store-entry-list

Top      Up      ToC       Page 59 
   comparator         = <"> comparator-name <">

   comparator-name    = ["+" / "-"] iana-token

   context            = string-utf8
                        ;; MUST NOT begin with slash ("/")

   dataset            = string-utf8
                        ;; slash-separated dataset name
                        ;; begins with slash

   entry              = entry-name / entry-path

   entry-name         = string-utf8
                        ;; entry name MUST NOT contain slash
                        ;; MUST NOT begin with "."

   entry-path         = string-utf8
                        ;; slash-separated path to entry
                        ;; begins with slash

   entry-relative     = string-utf8
                        ;; potentially relative path to entry

   extend-token       = atom
                        ;; MUST be defined by a standards track or
                        ;; IESG approved experimental protocol extension

   extension-data     = extension-item *(SP extension-item)

   extension-item     = extend-token / string / number /
                        "(" [extension-data] ")"

   iana-token         = atom
                        ;; MUST be registered with IANA

   initial-greeting   = "*" SP "ACAP" *(SP "(" init-capability ")") CRLF

   init-capability    = init-cap-context / init-cap-extend /
                        init-cap-implem / init-cap-sasl

   init-cap-context   = "CONTEXTLIMIT" SP string

   init-cap-extend    = iana-token [SP string-list]

   init-cap-implem    = "IMPLEMENTATION" SP string

   init-cap-sasl      = "SASL" SP string-list

Top      Up      ToC       Page 60 
   lang-tag           = <"> Language-Tag <">
                        ;; Language-Tag rule is defined in [LANG-TAGS]

   literal            = "{" number [ "+" ] "}" CRLF *OCTET
                        ;; The number represents the number of octets
                        ;; MUST be literal-utf8 except for values

   literal-utf8       = "{" number [ "+" ] "}" CRLF *UTF8-CHAR
                        ;; The number represents the number of octets
                        ;; not the number of characters

   metadata           = attribute [ "(" metadata-type-list ")" ]
                        ;; attribute MAY end in "*" as wildcard.

   metadata-list      = metadata *(SP metadata)

   metadata-type      = "attribute" / "myrights" / "size" /
                        "count" / metadata-write

   metadata-type-q    = <"> metadata-type <">

   metadata-type-list = metadata-type-q *(SP metadata-type-q)

   metadata-write     = "value" / "acl"

   metadata-write-q   = <"> metadata-write <">

   nil                = "NIL"

   number             = *DIGIT
                        ;; A 32-bit unsigned number.
                        ;; (0 <= n < 4,294,967,296)

   nz-number          = DIGIT-NZ *DIGIT
                        ;; A 32-bit unsigned non-zero number.
                        ;; (0 < n < 4,294,967,296)

   position           = number
                        ;; "0" if context is not enumerated
                        ;; otherwise this is non-zero

   quota-limit        = number

   quota-usage        = number

   quoted             = <"> *QUOTED-CHAR <">
                        ;; limited to 1024 octets between the <">s

Top      Up      ToC       Page 61 
   response           = response-addto / response-alert / response-bye /
                        response-change / response-cont /
                        response-deleted / response-done /
                        response-entry / response-extend /
                        response-listr / response-lang /
                        response-mtimei / response-mtimeu /
                        response-myright / response-quota /
                        response-refer / response-remove / response-stat

   response-addto     = "*" SP "ADDTO" SP context SP entry-name
                        SP position SP return-data-list

   response-alert     = "*" SP "ALERT" SP resp-body CRLF
                       ;; Client MUST display alert text to user

   response-bye       = "*" SP "BYE" SP resp-body CRLF
                       ;; Server will disconnect condition

   response-change    = "*" SP "CHANGE" SP context SP entry-name
                        SP position SP position SP return-data-list

   response-cont      = "+" SP string

   response-deleted   = tag SP "DELETED" SP entry-name

   response-done      = tag SP resp-cond-state CRLF

   response-entry     = tag SP "ENTRY" SP entry SP return-data-list

   response-extend    = (tag / "*") SP extend-token [SP extension-data]

   response-lang      = "*" SP "LANG" SP lang-tag 1*(SP comparator)

   response-listr     = tag SP "LISTRIGHTS" SP acl-rights
                        *(SP acl-rights)

   response-mtimei    = tag SP "MODTIME" SP time

   response-mtimeu    = "*" SP "MODTIME" SP context SP time

   response-myright   = tag SP "MYRIGHTS" SP acl-rights

   response-quota     = "*" SP "QUOTA" SP dataset SP quota-limit
                        SP quota-usage [SP extension-data]

   response-refer     = tag SP "REFER" SP dataset
                        1*(SP <"> url-relative <">)

Top      Up      ToC       Page 62 
   response-remove    = "*" SP "REMOVEFROM" SP context SP
                        entry-name SP position

   response-stat      = "*" SP resp-cond-state CRLF

   resp-body          = ["(" resp-code ")" SP] quoted

   resp-code          = "AUTH-TOO-WEAK" / "ENCRYPT-NEEDED" /
                        resp-code-inval / resp-code-mod /
                        resp-code-noexist / resp-code-perm / "QUOTA" /
                        resp-code-refer / resp-code-sasl /
                        resp-code-toomany / "TOOOLD" /
                        "TRANSITION-NEEDED" / "TRYFREECONTEXT" /
                        "TRYLATER" / "WAYTOOMANY" / resp-code-ext

   resp-code-ext      = iana-token [SP extension-data]
                        ;; unknown codes MUST be tolerated by the client

   resp-code-inval    = "INVALID" 1*(SP entry-path SP attribute)

   resp-code-mod      = "MODIFIED" SP entry-path

   resp-code-noexist  = "NOEXIST" SP dataset

   resp-code-perm     = "PERMISSION" SP acl-object

   resp-code-refer    = "REFER" 1*(SP <"> url-relative <">)

   resp-code-sasl     = "SASL" SP string

   resp-code-toomany  = "TOOMANY" SP nz-number

   resp-cond-state    = ("OK" / "NO" / "BAD") SP resp-body
                        ;; Status condition

   return-attr-list   = "(" return-metalist *(SP return-metalist) ")"
                        ;; occurs when "*" in RETURN pattern on SEARCH

   return-data        = return-metadata / return-metalist /
                        return-attr-list

   return-data-list   = return-data *(SP return-data)

   return-metalist    = "(" return-metadata *(SP return-metadata) ")"
                        ;; occurs when multiple metadata items requested

   return-metadata    = nil / string / value-list / acl

Top      Up      ToC       Page 63 
   searchkey-equal    = "EQUAL" SP attribute SP comparator SP value-nil

   searchkey-comp     = "COMPARE" SP attribute SP comparator SP value

   searchkey-prefix   = "PREFIX" SP attribute SP comparator SP value

   searchkey-range    = "RANGE" SP nz-number SP nz-number SP time

   searchkey-strict   = "COMPARESTRICT" SP attribute SP comparator
                        SP value

   searchkey-substr   = "SUBSTRING" SP attribute SP comparator SP value

   searchmod-depth    = "DEPTH" SP number

   searchmod-hard     = "HARDLIMIT" SP nz-number

   searchmod-limit    = "LIMIT" SP number SP number

   searchmod-make     = "MAKECONTEXT" [SP "ENUMERATE"]
                        [SP "NOTIFY"] SP context

   searchmod-ninh     = "NOINHERIT"

   searchmod-return   = "RETURN" SP "(" [metadata-list] ")"

   searchmod-sort     = "SORT" SP "(" sort-list ")"

   search-criteria    = "ALL" / searchkey-equal / searchkey-comp /
                        searchkey-strict / searchkey-range /
                        searchkey-prefix / searchkey-substr /
                        "NOT" SP search-criteria /
                        "OR" SP search-criteria SP search-criteria /
                        "AND" SP search-criteria SP search-criteria

   search-modifier    = searchmod-depth / searchmod-hard /
                        searchmod-limit / searchmod-make /
                        searchmod-ninh / searchmod-return /
                        searchmod-sort

   sort-list          = sort-item *(SP sort-item)

   sort-item          = attribute SP comparator

   store-entry        = "(" entry-path *(SP store-modifier)
                            *(SP attribute-store) ")"
                        ;; MUST NOT include same store-modifier twice
                        ;; MUST NOT include same attribute twice

Top      Up      ToC       Page 64 
   store-entry-list   = store-entry *(SP store-entry)
                        ;; MUST NOT include same entry twice

   store-modifier     = store-mod-unchang / store-mod-nocreate

   store-mod-nocreate = "NOCREATE"

   store-mod-unchang  = "UNCHANGEDSINCE" SP time

   string             = quoted / literal

   string-list        = string *(SP string)

   string-utf8        = quoted / literal-utf8

   tag                = 1*32TAG-CHAR

   time               = <"> time-year time-month time-day time-hour
                        time-minute time-second time-subsecond <">
                        ;; Timestamp in UTC

   time-day           = 2DIGIT ;; 01-31

   time-hour          = 2DIGIT ;; 00-23

   time-minute        = 2DIGIT ;; 00-59

   time-month         = 2DIGIT ;; 01-12

   time-second        = 2DIGIT ;; 00-60

   time-subsecond     = *DIGIT

   time-year          = 4DIGIT

   value              = string

   value-list         = "(" [value *(SP value)] ")"

   value-nil          = value / nil

   value-nildef       = value-nil / "DEFAULT"

   value-store        = value-nildef / value-list / acl

   url-acap           = "acap://" url-server "/" url-enc-entry
                        [url-filter] [url-extension]
                        ;; url-enc-entry interpreted relative to "/"

Top      Up      ToC       Page 65 
   url-attr-list      = url-enc-attr *("&" url-enc-attr)

   url-auth           = ";AUTH=" ("*" / url-enc-auth)

   url-achar          = uchar / "&" / "=" / "~"
                        ;; See RFC 1738 for definition of "uchar"

   url-char           = uchar / "=" / "~" / ":" / "@" / "/"
                        ;; See RFC 1738 for definition of "uchar"

   url-enc-attr       = 1*url-char
                        ;; encoded version of attribute name

   url-enc-auth       = 1*url-achar
                        ;; encoded version of auth-type-name above

   url-enc-entry      = 1*url-char
                        ;; encoded version of entry-relative above

   url-enc-user       = *url-achar
                        ;; encoded version of login userid

   url-extension      = *("?" 1*url-char)

   url-filter         = "?" url-attr-list

   url-relative       = url-acap / [url-enc-entry] [url-filter]
                        ;; url-enc-entry is relative to base URL

   url-server         = [url-enc-user [url-auth] "@"] hostport
                        ;; See RFC 1738 for definition of "hostport"

9.       Multi-lingual Considerations

   The IAB charset workshop [IAB-CHARSET] came to a number of
   conclusions which influenced the design of ACAP.  The decision to use
   UTF-8 as the character encoding scheme was based on that work.  The
   LANG command to negotiate a language for error messages is also
   included.

   Section 3.4.5 of the IAB charset workshop report states that there
   should be a way to identify the natural language for human readable
   strings.  Several promising proposals have been made for use within
   ACAP, but no clear consensus on a single method is apparent at this
   stage.  The following rules are likely to permit the addition of
   multi-lingual support in the future:

Top      Up      ToC       Page 66 
   (1) A work in progress called Multi-Lingual String Format (MLSF)
   proposes a layer on top of UTF-8 which uses otherwise illegal UTF-8
   sequences to store language tags.  In order to permit its addition to
   a future version of this standard, client-side UTF-8 interpreters
   MUST be able to silently ignore illegal multi-byte UTF-8 characters,
   and treat illegal single-byte UTF-8 characters as end of string
   markers.  Servers, for the time being, MUST be able to silently
   accept illegal UTF-8 characters, except in attribute names and entry
   names.  Clients MUST NOT send illegal UTF-8 characters to the server
   unless a future standard changes this rule.

   (2) There is a proposal to add language tags to Unicode.  To support
   this, servers MUST be able to store UTF-8 characters of up to 20 bits
   of data.

   (3) The metadata item "language" is reserved for future use.

10.      Security Considerations

   The AUTHENTICATE command uses SASL [SASL] to provide basic
   authentication, authorization, integrity and privacy services.  This
   is described in section 6.3.1.

   When the CRAM-MD5 mechanism is used, the security considerations for
   the CRAM-MD5 SASL mechanism [CRAM-MD5] apply.  The CRAM-MD5 mechanism
   is also susceptible to passive dictionary attacks.  This means that
   if an authentication session is recorded by a passive observer, that
   observer can try common passwords through the CRAM-MD5 mechanism and
   see if the results match.  This attack is reduced by using hard to
   guess passwords.  Sites are encouraged to educate users and have the
   password change service test candidate passwords against a
   dictionary.  ACAP implementations of CRAM-MD5 SHOULD permit passwords
   of at least 64 characters in length.

   ACAP protocol transactions are susceptible to passive observers or
   man in the middle attacks which alter the data, unless the optional
   encryption and integrity services of the AUTHENTICATE command are
   enabled, or an external security mechanism is used for protection.
   It may be useful to allow configuration of both clients and servers
   to refuse to transfer sensitive information in the absence of strong
   encryption.

   ACAP access control lists provide fine grained authorization for
   access to attributes.  A number of related security issues are
   described in section 3.5.

   ACAP URLs have the same security considerations as IMAP URLs
   [IMAP-URL].

Top      Up      ToC       Page 67 
   ACAP clients are encouraged to consider the security problems
   involved with a lab computer situation.  Specifically, a client cache
   of ACAP configuration information MUST NOT allow access by an
   unauthorized user.  One way to assure this is for an ACAP client to
   be able to completely flush any non-public cached configuration data
   when a user leaves.

   As laptop computers can be easily stolen and a cache of configuration
   data may contain sensitive information, a disconnected mode ACAP
   client may wish to encrypt and password protect cached configuration
   information.

11.      Acknowledgments

   Many thanks to the follow people who have contributed to ACAP over
   the past four years: Wallace Colyer, Mark Crispin, Jack DeWinter, Rob
   Earhart, Ned Freed, Randy Gellens, Terry Gray, J. S. Greenfield,
   Steve Dorner, Steve Hole, Steve Hubert, Dave Roberts, Bart Schaefer,
   Matt Wall and other participants of the IETF ACAP working group.

12.      Authors' Addresses

   Chris Newman
   Innosoft International, Inc.
   1050 Lakes Drive
   West Covina, CA 91790 USA

   Email: chris.newman@innosoft.com


   John Gardiner Myers
   Netscape Communications
   501 East Middlefield Road
   Mail Stop MV-029
   Mountain View, CA 94043

   Email: jgmyers@netscape.com

Top      Up      ToC       Page 68 
Appendices

A.       References

   [ABNF] Crocker, Overell, "Augmented BNF for Syntax Specifications:
   ABNF", RFC 2234, Internet Mail Consortium, Demon Internet Ltd,
   November 1997.

       <ftp://ds.internic.net/rfc/rfc2234.txt>

   [BASIC-URL] Berners-Lee, Masinter, McCahill, "Uniform Resource
   Locators (URL)", RFC 1738, CERN, Xerox Coproration, University of
   Minnesota, December 1994.

       <ftp://ds.internic.net/rfc/rfc1738.txt>

   [CHARSET-LANG-POLICY] Alvestrand, "IETF Policy on Character Sets and
   Languages", work in progress.

   [CRAM-MD5] Klensin, Catoe, Krumviede, "IMAP/POP AUTHorize Extension
   for Simple Challenge/Response", RFC 2195, MCI, September 1997.

       <ftp://ds.internic.net/rfc/rfc2195.txt>

   [IAB-CHARSET] Weider, Preston, Simonsen, Alvestrand, Atkinson,
   Crispin, Svanberg, "The Report of the IAB Character Set Workshop held
   29 February - 1 March, 1996", RFC 2130, April 1997.

       <ftp://ds.internic.net/rfc/rfc2130.txt>

   [IMAP4] Crispin, M., "Internet Message Access Protocol - Version
   4rev1", RFC 2060, University of Washington, December 1996.

       <ftp://ds.internic.net/rfc/rfc2060.txt>

   [IMAP-ACL] Myers, J., "IMAP4 ACL extension", RFC 2086, Carnegie
   Mellon, January 1997.

       <ftp://ds.internic.net/rfc/rfc2086.txt>

   [IMAP-URL] Newman, "IMAP URL Scheme", RFC 2192, Innosoft, July 1997.

       <ftp://ds.internic.net/rfc/rfc2192.txt>

   [ISO-10646] ISO/IEC 10646-1:1993(E) "Information Technology--
   Universal Multiple-octet Coded Character Set (UCS)." See also
   amendments 1 through 7, plus editorial corrections.

Top      Up      ToC       Page 69 
   [ISO-C] "Programming languages -- C", ISO/IEC 9899:1990,
   International Organization for Standardization.  This is effectively
   the same as ANSI C standard X3.159-1989.

   [KEYWORDS] Bradner, "Key words for use in RFCs to Indicate
   Requirement Levels", RFC 2119, Harvard University, March 1997.

       <ftp://ds.internic.net/rfc/rfc2119.txt>

   [LANG-TAGS] Alvestrand, H., "Tags for the Identification of
   Languages", RFC 1766.

       <ftp://ds.internic.net/rfc/rfc1766.txt>

   [REL-URL] Fielding, "Relative Uniform Resource Locators", RFC 1808,
   UC Irvine, June 1995.

       <ftp://ds.internic.net/rfc/rfc1808.txt>

   [SASL] Myers, J., "Simple Authentication and Security Layer (SASL)",
   RFC 2222, Netscape Communications, October 1997.

       <ftp://ds.internic.net/rfc/rfc2222.txt>

   [SASL-ANON] Newman, C., "Anonymous SASL Mechanism", RFC 2245,
   November 1997.

   [UNICODE-2] The Unicode Consortium, "The Unicode Standard, Version
   2.0", Addison-Wesley, 1996. ISBN 0-201-48345-9.

   [US-ASCII] "USA Standard Code for Information Interchange," X3.4.
   American National Standards Institute: New York (1968).

   [UTF8] Yergeau, F. "UTF-8, a transformation format of Unicode and ISO
   10646", RFC 2044, Alis Technologies, October 1996.

       <ftp://ds.internic.net/rfc/rfc2044.txt>

Top      Up      ToC       Page 70 
B.       ACAP Keyword Index


       ACAP (untagged response) ...................................   26
       ADDTO (untagged response) ..................................   40
       ALERT (untagged response) ..................................   31
       ALL (search keyword) .......................................   36
       AND (search keyword) .......................................   36
       AUTH-TOO-WEAK (response code) ..............................   19
       AUTHENTICATE (command) .....................................   31
       BAD (response) .............................................   30
       BYE (untagged response) ....................................   30
       CHANGE (untagged response) .................................   41
       COMPARE (search keyword) ...................................   36
       COMPARESTRICT (search keyword) .............................   36
       CONTEXTLIMIT (ACAP capability) .............................   27
       DELETEACL (command) ........................................   46
       DELETED (intermediate response) ............................   45
       DELETEDSINCE (command) .....................................   45
       DEPTH (search modifier) ....................................   34
       ENCRYPT-NEEDED (response code) .............................   19
       ENTRY (intermediate response) ..............................   37
       EQUAL (search keyword) .....................................   37
       FREECONTEXT (command) ......................................   39
       GETQUOTA (command) .........................................   48
       HARDLIMIT (search modifier) ................................   34
       IMPLEMENTATION (ACAP capability) ...........................   27
       INVALID (response code) ....................................   19
       LANG (command) .............................................   28
       LANG (intermediate response) ...............................   28
       LIMIT (search modifier) ....................................   34
       LISTRIGHTS (command) .......................................   47
       LISTRIGHTS (intermediate response) .........................   48
       LOGOUT (command) ...........................................   29
       MAKECONTEXT (search modifier) ..............................   34
       MODIFIED (response code) ...................................   19
       MODTIME (intermediate response) ............................   38
       MODTIME (untagged response) ................................   42
       MYRIGHTS (command) .........................................   47
       MYRIGHTS (intermediate response) ...........................   47
       NO (response) ..............................................   29
       NOCREATE (store modifier) ..................................   44
       NOEXIST (response code) ....................................   19
       NOINHERIT (search modifier) ................................   35
       NOOP (command) .............................................   27
       NOT (search keyword) .......................................   37
       OK (response) ..............................................   29
       OR (search keyword) ........................................   37
       PERMISSION (response code) .................................   19

Top      Up      ToC       Page 71 
       PREFIX (search keyword) ....................................   37
       QUOTA (response code) ......................................   19
       QUOTA (untagged response) ..................................   49
       RANGE (search keyword) .....................................   37
       REFER (intermediate response) ..............................   38
       REFER (response code) ......................................   19
       REMOVEFROM (untagged response) .............................   41
       RETURN (search modifier) ...................................   35
       SASL (ACAP capability) .....................................   27
       SASL (response code) .......................................   20
       SEARCH (command) ...........................................   33
       SETACL (command) ...........................................   46
       SORT (search modifier) .....................................   36
       STORE (command) ............................................   42
       SUBSTRING (search keyword) .................................   37
       TOOMANY (response code) ....................................   20
       TOOOLD (response code) .....................................   20
       TRANSITION-NEEDED (response code) ..........................   20
       TRYFREECONTEXT (response code) .............................   20
       TRYLATER (response code) ...................................   20
       UNCHANGEDSINCE (store modifier) ............................   44
       UPDATECONTEXT (command) ....................................   40
       WAYTOOMANY (response code) .................................   20
       acl (attribute metadata) ...................................   12
       anyone (ACL identifier) ....................................   17
       attribute (attribute metadata) .............................   12
       dataset.acl (dataset attribute) ............................   24
       dataset.acl.<attribute> (dataset attribute) ................   24
       dataset.inherit (dataset attribute) ........................   24
       entry (predefined attribute) ...............................   11
       i;ascii-casemap (comparator) ...............................   16
       i;ascii-numeric (comparator) ...............................   16
       i;octet (comparator) .......................................   16
       modtime (predefined attribute) .............................   11
       myrights (attribute metadata) ..............................   12
       size (attribute metadata) ..................................   13
       subdataset (predefined attribute) ..........................   11
       value (attribute metadata) .................................   13

Top      Up      ToC       Page 72 
C.       Full Copyright Statement

   Copyright (C) The Internet Society 1997. All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implmentation may be prepared, copied, published and
   distributed, in whole or in part, without restriction of any kind,
   provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of developing
   Internet standards in which case the procedures for copyrights defined
   in the Internet Standards process must be followed, or as required to
   translate it into languages other than English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT
   NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN
   WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.