< draft-ietf-spki-cert-examples-00.txt   draft-ietf-spki-cert-examples-01.txt >
SPKI Examples Carl M. Ellison SPKI Examples Carl M. Ellison
INTERNET-DRAFT CyberCash, Inc. INTERNET-DRAFT CyberCash, Inc.
Expires: 26 May 1998 Expires: 15 September 1998
Bill Frantz Bill Frantz
Electric Communities Electric Communities
Butler Lampson Butler Lampson
Microsoft Microsoft
Ron Rivest Ron Rivest
MIT Laboratory for Computer Science MIT Laboratory for Computer Science
Brian M. Thomas Brian M. Thomas
Southwestern Bell Southwestern Bell
Tatu Ylonen Tatu Ylonen
SSH SSH
21 November 1997 10 March 1998
SPKI Examples SPKI Examples
---- -------- ---- --------
<draft-ietf-spki-cert-examples-00.txt> <draft-ietf-spki-cert-examples-01.txt>
Status of This Document Status of This Document
This document is one of three, superseding the draft filed under the
name draft-ietf-spki-cert-structure-02.txt. This draft contains
examples of SPKI structures for various applications. The structure
definition is to be found in draft-ietf-spki-cert-structure-03.txt
and the theory behind SPKI certificates is to be found in draft-
ieft-spki-cert-theory-01.txt.
This document supersedes the draft filed under the name draft-ietf- This document supersedes the draft filed under the name draft-ietf-
spki-cert-structure-01.txt and reflects changes in the structure to spki-cert-examples-00.txt. This draft contains examples of SPKI
simplify it. The draft ends with a list of open questions for group structures for various applications. The structure definition is to
discussion. be found in draft-ietf-spki-cert-structure-*.txt and the theory
behind SPKI certificates is to be found in draft-ietf-spki-cert-
theory-*.txt.
Distribution of this document is unlimited. Comments should be sent Distribution of this document is unlimited. Comments should be sent
to the SPKI (Simple Public Key Infrastructure) Working Group mailing to the SPKI (Simple Public Key Infrastructure) Working Group mailing
list <spki@c2.org> or to the authors. list <spki@c2.net> or to the authors.
This document is an Internet-Draft. Internet-Drafts are working This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts. working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six Internet-Drafts are draft documents valid for a maximum of six
months. Internet-Drafts may be updated, replaced, or obsoleted by months. Internet-Drafts may be updated, replaced, or obsoleted by
other documents at any time. It is not appropriate to use Internet- other documents at any time. It is not appropriate to use Internet-
Drafts as reference material or to cite them other than as a Drafts as reference material or to cite them other than as a
``working draft'' or ``work in progress.'' ``working draft'' or ``work in progress.''
To learn the current status of any Internet-Draft, please check the To learn the current status of any Internet-Draft, please check the
1id-abstracts.txt listing contained in the Internet-Drafts Shadow 1id-abstracts.txt listing contained in the Internet-Drafts Shadow
Directories on ds.internic.net (East USA), ftp.isi.edu (West USA), Directories on ds.internic.net (East USA), ftp.isi.edu (West USA),
nic.nordu.net (North Europe), ftp.nis.garr.it (South Europe), nic.nordu.net (North Europe), ftp.nis.garr.it (South Europe),
munnari.oz.au (Pacific Rim), or ftp.is.co.za (Africa). munnari.oz.au (Pacific Rim), or ftp.is.co.za (Africa).
Abstract Abstract
With the proliferation of public key cryptography on the Internet, SPKI structures are defined for public keys, hash values, access
there arises a need for certification of keys. In the literature, control list (ACL) entries and certificates. This document gives
the word ''certificate'' has generally been taken to mean ''identity examples of such structures for real world applications. The
certificate'': a signed statement which binds a key to the name of an examples here are not tied to any specific application and should be
individual and has the intended meaning of delegating authority from taken as informative examples rather than standard formats. However,
that named individual to the public key. (See, for example, RFC once applications are fielded using such structures and we have
1422.) This process is designed to copy a relationship between two experience with them, we can consider publishing those formats as
entities from the physical world into the digital world. proposed standards. That effort is considered out of scope for this
document.
The Internet itself changed the world from the one in which identity Table of Contents
certificates made sense. We now deal with people we have never met
and never will, which makes their names meaningless to us, but we
still need to verify whether they are authorized to perform some
action, achieve some access, sign some document, etc.
SPKI certificates were designed to perform that function by directly Status of This Document....................................1
specifying the <permission,key> binding which is of interest in the Abstract...................................................2
digital world. As merged with SDSI, the current certificate format
also allows someone to bind a key to a name in their own private name
space. The certificate structure presented here allows permissions
to be delegated to SDSI-named individuals or to raw keys.
Acknowledgments Table of Contents..........................................3
Several independent contributions, published elsewhere on the net or 1. SPKI Basic Structures...................................4
in print, worked in synergy with our effort. Especially important to
our work were: [SDSI], [BFL] and [RFC2065]. The inspiration we
received from the notion of CAPABILITY in its various forms (SDS-940,
Kerberos, DEC DSSA, [SRC-070], KeyKOS [HARDY]) can not be over-rated.
Significant contributions to this effort by the members of the SPKI 2. Tag Examples............................................6
mailing list and especially the following persons (listed in 2.1 FTP....................................................6
alphabetic order) are gratefully acknowledged: Steve Bellovin, Mark 2.2 HTTP...................................................6
Feldman, John Gilmore, Phill Hallam-Baker, Bob Jueneman, David Kemp, 2.3 TELNET.................................................6
Angelos D. Keromytis, Paul Lambert, Jon Lasser, Jeff Parrett, Bill 2.4 Public Key Protected File System tags..................6
Sommerfeld, Simon Spero. 2.5 Authority to spend money...............................8
2.6 Purchase order signing permission......................8
1. Examples 3. Keyholder examples......................................9
3.1 Locator certificate....................................9
3.2 Insurance certificate.................................10
3.3 Auto-certificate......................................10
4. Object certificates....................................11
4.1 PICS-like ratings certificate.........................11
4.2 Virus checking certificate............................11
5. Full sequence, with auto-certificate...................12
Authors' Addresses........................................14
Expiration and File Name..................................15
1. SPKI Basic Structures
An SPKI certificate has five fields of interest during trust
computations:
1. Issuer -- the principal issuing this certificate and granting the
permission or rights it communicates
2. Subject -- the principal or name acquiring the permission or
rights
3. Delegation -- a flag noting whether the Subject is also acquiring
the right to delegate all or part of the permission it acquires
through this certificate
4. Authorization <tag> -- a field specifying the permission being
communicated
5. Validity -- a specification of the dates or on-line conditions
under which the certificate is assumed to be valid
An SPKI ACL entry generates the same five fields, for trust
computation, but does not need to contain them all. The Issuer is
always "self" and is omitted from the structure. If the ACL is held
in editable memory, then the Validity fields can be omitted on the
assumption that if the owner of the ACL wants to declare an entry
invalid, he can edit it immediately. However, for ACLs built into
executable software, running remotely, this assumption may not hold
true and one might want validity fields.
The purpose of SPKI structures is to communicate permission or rights
from one keyholder to another. If we consider this flow to go
horizontally from left to right, at the left end of the flow one
finds the injection of permission. This is always in the form of an
access control list (ACL) entry. An ACL entry is like a certificate,
except that it has no issuer and is not signed. It is protected in
the application by other means.
To the right of the ACL entry, one finds certificates. At least for
the sake of discussion, there are two forms of certificate: one that
communicates permissions and one that defines names. It is possible
to unify the two, but for our purposes, they will be considered
separately.
A basic SPKI certificate communicates a permission from one key to
another key (equivalently from one principal to another principal or
from one keyholder to another keyholder). In the process, it can
pass all permissions it has been handed, in which case it uses (tag
(*)) as its tag field or it can pass only certain permissions. The
former can be considered a group membership certificate. That is,
the subject key is a full member of the group defined by the issuer
key. Any permissions given the issuer are inherited by the subject.
If the subject is a name rather than a key, then the permission is
being granted to the named key. That is, it is assumed that the name
will be reduced to a key before permissions propagate. This is
especially important when considering the propagation of the
permission to delegate. A named key may be given a permission
without the permission to delegate, but that name could define a
group and could therefore represent implicit delegation.
A name certificate maps a name (in the issuer field) to either a key
or a name (in the subject field). It is always a group membership
style of certificate -- that is with (tag (*)).
The bulk of what changes with each example in the next section is the
<tag> field, so we assume the following certificate template:
(cert
(issuer (hash sha1 |TLCgPLFlGTzgUbcaYLW8kGTEnUk=|))
(subject (hash sha1 |Ve1L/7MqiJcj+LSa/l10fl3tuTQ=|))
...
(not-before "1998-03-01_12:42:17")
(not-after "2012-01-01_00:00:00")
)
or ACL template:
(acl
(entry
(subject (hash sha1 |Ve1L/7MqiJcj+LSa/l10fl3tuTQ=|))
...
)
)
with a tag and possibly delegation field where the "..." is in the
middle of the structures above.
2. Tag Examples
The <tag> fields listed here are not meant to be an exhaustive list The <tag> fields listed here are not meant to be an exhaustive list
of all possible <tag>s. Such is not possible. The final arbiter of of all possible <tag>s. Such is not possible. The final arbiter of
what needs to be an <tag> and what parameters a particular <tag> what needs to be an <tag> and what parameters a particular <tag>
needs is the designer of the code which verifies a certificate, e.g., needs is the designer of the code that verifies a certificate, e.g.,
to grant access. Listed here are <tag> fields we suspect might be to grant access. Listed here are <tag> fields we suspect might be
useful and we present these here as a guide to the developer's useful and we present these here as a guide to the developer's
imagination. imagination.
1.1 ftp tag 2.1 FTP
(tag (ftp cybercash.com cme )) (tag (ftp cybercash.com cme))
This <tag> indicates that the Subject has permission to do FTP into This <tag> indicates that the Subject has permission to do FTP into
host cybercash.com as user cme. host cybercash.com as user cme.
1.2 http tag 2.2 HTTP
(tag (http http://acme.com/company-private/personnel/ )) (tag (http http://acme.com/company-private/personnel ))
This <tag> gives the Subject permission to access web pages which This <tag> gives the Subject permission to access the web page at the
start with the given URI. given URI. To give permission for an entire tree under a given URI,
one might use:
1.3 telnet tag (tag (http (* prefix http://acme.com/company-private/personnel/ )))
2.3 TELNET
(tag (telnet clark.net cme )) (tag (telnet clark.net cme ))
This <tag> gives the Subject permission to telnet into host clark.net This <tag> gives the Subject permission to telnet into host clark.net
as user cme. as user cme.
1.4 Public Key Protected File System tags 2.4 Public Key Protected File System tags
(tag (pkpfs //<host-name>/<path> <access> )) (tag (pkpfs <pathname> <access> ))
(tag (pkpfs (* prefix //<host-name>/<path>/) <access> ))
refers to a hypothetical distributed file system whose access is refers to a hypothetical distributed file system whose access is
controlled by public key challenge/response. The first form gives controlled by public key challenge/response. The <pathname> can be a
access to a single file or a small set of files (by use of "*" in the single pathname, a set of files (specified by normal "*" convention)
file name) while the second form gives access to an entire sub- or a directory sub-structure (specified by (* prefix ...)). For
directory. example,
<access> is a (* set ...) whose elements are chosen from: (read) (tag (pkpfs //ftp.clark.net/pub/cme/spki.txt (* set read write)))
(write) (append) (delete) (execute)
1.5 Authority to spend money would give read and write access to that one file on that one host
machine, while
(tag (pkpfs //ftp.clark.net/pub/cme/spki.* (* set read write)))
would give read and write access to all files starting with "spki.".
(tag (pkpfs //ftp.clark.net/pub/cme/ add))
would give permission to add new files to that directory and
(tag (pkpfs (* prefix //ftp.clark.net/pub/cme/) read ))
would give read permission to all files in that directory.
The full specification of possible <access> specifications is up to
the implementer of this file system.
One might also want to grant disk quotas for this file system, e.g.,
via:
(tag (pkpfs-quota (* range le "50000" )))
One could have used
(tag (pkpfs-quota "50000" ))
to express the quota, but the (* range ...) form permits the user to
delegate a sub-quota to some other user.
Accounting for such quotas could be interesting, but one would
probably want to charge each K of disk to all users in the
certificate delegation chain, since the disk accounting system is not
aware of acts of delegation and therefore can not reduce the quota of
the delegator. To maintain good accounting, this would require each
file to have a list of accounts (key hashes) against which its size
is charged -- so that when a file is deleted, the appropriate quotas
can be adjusted. Since there would probably be only a small number
of different such chains of delegation, one might keep such lists
separately from file nodes. However, these are details left to the
designer of the PKPFS.
2.5 Authority to spend money
(tag (spend <bank> <account> (* range le <amount> ))) (tag (spend <bank> <account> (* range le <amount> )))
indicates that the subject has authority to authorize spending up to indicates that the subject has authority to authorize spending up to
<amount> per electronic check from <account> at <bank>. <amount> per electronic check from <account> at <bank>. For example,
1.6 Process Server cert (propagate)
(tag (spend BankBoston "011000390 436 20608" (* range le "500.00")))
A process server certificate, mentioned in Section 3.5.5.2, might permits someone to spend up to 500.00 per electronic check from the
have the form: indicated checking account at BankBoston. [The account number above
was chosen randomly and is hopefully not a valid BankBoston account.]
(propagate) implies that this account holder has the permission to
delegate check-writing ability to others (e.g., family members or
temporary public keys (for use on a laptop while traveling)).
2.6 Purchase order signing permission
(tag (purchase (* range le <amount>) (* set <<items>> )))
might indicate permission to issue a purchase order. The amount of
the purchase order is limited by the second element of the (purchase
) S-expression and, optionally, a list of purchasable items is given
as the third element. The company whose purchase orders are
permitted to be signed here will appear in the certificate permission
chain leading to the final purchase order. Specifically, that
company's key will be the issuer at the head of the (purchase )
chain.
3. Keyholder examples
The set of examples in this section deals with (keyholder) subjects.
These are for human consumption, since the subject is a human being
(the keyholder of a particular key) rather than a key in cyberspace.
Note that it is not meaningful for a keyholder certificate to have
the (propagate) flag.
3.1 Locator certificate
A locator certificate is one that is issued by a company that
promises to keep track of the indicated keyholder until the not-after
date, and promises to serve the keyholder with papers for the
indicated fee in the indicated currency, up until the not-after date.
This kind of certificate might be used to back up a legal contract in
which the keyholder might have to pay damages at some future date, in
the event of non-performance, so that it becomes important to know
how to sue that keyholder at that later date. An old fashioned
"identity certificate" doesn't serve as well here because it lists
some information about the keyholder that might be used to track that
person down, but that information is old by the time the contract is
signed and it is the ability to locate that keyholder at the end of
the contract that is important. Maintaining that ability costs money
and therefore the issuer of the locator certificate expects to be
paid for its services. The issuer might also charge the keyholder at
the time of certificate issuance, but that fee need not be indicated
in the certificate.
For example:
(cert (cert
(issuer (hash md5 |u2kl73MiObh5o1zkGmHdbA==|)) (issuer (hash md5 |u2kl73MiObh5o1zkGmHdbA==|))
(subject (keyholder (hash md5 |kuXyqx8jYWdZ/j7Vffr+yg==| key2-pub))) (subject (keyholder (hash md5 |kuXyqx8jYWdZ/j7Vffr+yg==| )))
(tag (tracking-fee "150" USD)) (tag (tracking-fee "150" USD))
(not-after "2003-01-01_00:00:00") (not-after "2003-01-01_00:00:00")
) )
{KDQ6Y2VydCg2Omlzc3Vlcig0Omhhc2gzOm1kNTE2OrtpJe9zIjm4eaNc5Bp {KDQ6Y2VydCg2Omlzc3Vlcig0Omhhc2gzOm1kNTE2OrtpJe9zIjm4eaNc5Bp
h3WwpKSg3OnN1YmplY3QoOTprZXlob2xkZXIoNDpoYXNoMzptZDUxNjqS5fK h3WwpKSg3OnN1YmplY3QoOTprZXlob2xkZXIoNDpoYXNoMzptZDUxNjqS5fK
rHyNhZ1n+PtV9+v7KODprZXkyLXB1YikpKSgzOnRhZygxMjp0cmFja2luZy1 rHyNhZ1n+PtV9+v7KKSkpKDM6dGFnKDEyOnRyYWNraW5nLWZlZTM6MTUwMzp
mZWUzOjE1MDM6VVNEKSkoOTpub3QtYWZ0ZXIxOToyMDAzLTAxLTAxXzAwOjA VU0QpKSg5Om5vdC1hZnRlcjE5OjIwMDMtMDEtMDFfMDA6MDA6MDApKQ==}
wOjAwKSk=}
noting in its tag field that it will serve papers on the indicated notes in its tag field that the issuer will serve papers on the
Keyholder for a tracking fee of $150 until the beginning of 2003. indicated keyholder for a tracking fee of $150 until the beginning of
2003.
1.7 PICS-like ratings cert 3.2 Insurance certificate
Instead of tracking down a keyholder and serving papers on him or
her, the person relying on a certificate might prefer that some
insurance company pay the penalty amount in the event of non-
performance, and then worry on its own about collecting that fee
(plus damages, no doubt) from the keyholder. This kind of
certificate, like an insurance policy, will cost the user of the
certificate money at the time it is issued. It is therefore good for
only one user.
For example:
(cert
(issuer (hash md5 |u2kl73MiObh5o1zkGmHdbA==|))
(subject (keyholder (hash md5 |kuXyqx8jYWdZ/j7Vffr+yg==| )))
(tag (insured "50000" USD) (to (hash md5 |1r8ICXryJw6v/B4MQdTU/Q==|))
(for "Failure to perform under contract (on file): "
(hash md5 |gPA50iM6yETsixLgo2kVlA==|)))
(not-after "2003-01-01_00:00:00")
)
represents a promise to pay $50000 to |1r8ICXryJw6v/B4MQdTU/Q==| in
the event that the keyholder of |kuXyqx8jYWdZ/j7Vffr+yg==| fails to
fulfill the contract, |gPA50iM6yETsixLgo2kVlA==|.
3.3 Auto-certificate
There are some pieces of information about which the proper issuer is
the subject. The name a keyholder prefers to be called, the phone
number or e-mail address at which the keyholder can be reached, etc.,
are all items of information about which the keyholder is the best
authority.
(cert
(issuer (hash sha1 |1QvsTPF0/vqHPGODX/yEN8ro+sc=|))
(subject (keyholder (hash sha1 |1QvsTPF0/vqHPGODX/yEN8ro+sc=|)))
(tag
(* set
(name "Carl")
(e-mail "cme@acm.org") ) ) )
{KDQ6Y2VydCg2Omlzc3Vlcig0Omhhc2g0OnNoYTEyMDrVC+xM8XT++oc8Y4N
f/IQ3yuj6xykpKDc6c3ViamVjdCg5OmtleWhvbGRlcig0Omhhc2g0OnNoYTE
yMDrVC+xM8XT++oc8Y4Nf/IQ3yuj6xykpKSgzOnRhZygxOiozOnNldCg0Om5
hbWU0OkNhcmwpKDY6ZS1tYWlsMTE6Y21lQGFjbS5vcmcpKSkp}
4. Object certificates
The certificates in this section have subjects that are objects
rather than keys or keyholders. As with keyholder certificates, it
is not meaningful for object certificates to have the (propagate)
flag.
4.1 PICS-like ratings certificate
(cert (cert
(issuer (hash md5 |Ut9m14byPzdbCNZWdDjNQg==|)) (issuer (hash md5 |Ut9m14byPzdbCNZWdDjNQg==|))
(subject (subject
(object-hash (object-hash
(hash md5 |vN6ySKWE9K6T6cP9U5wntA==| (hash md5 |vN6ySKWE9K6T6cP9U5wntA==|
http://www.clark.net/pub/cme/home.html))) http://www.clark.net/pub/cme/home.html)))
(tag (ratings (sex "0") (violence "0") (crypto "6"))) (tag (ratings (sex "1") (violence "0") (crypto "9")))
) )
{KDQ6Y2VydCg2Omlzc3Vlcig0Omhhc2gzOm1kNTE2OlLfZteG8j83WwjWVnQ {KDQ6Y2VydCg2Omlzc3Vlcig0Omhhc2gzOm1kNTE2OlLfZteG8j83WwjWVnQ
4zUIpKSg3OnN1YmplY3QoMTE6b2JqZWN0LWhhc2goNDpoYXNoMzptZDUxNjq 4zUIpKSg3OnN1YmplY3QoMTE6b2JqZWN0LWhhc2goNDpoYXNoMzptZDUxNjq
83rJIpYT0rpPpw/1TnCe0Mzg6aHR0cDovL3d3dy5jbGFyay5uZXQvcHViL2N 83rJIpYT0rpPpw/1TnCe0Mzg6aHR0cDovL3d3dy5jbGFyay5uZXQvcHViL2N
tZS9ob21lLmh0bWwpKSkoMzp0YWcoNzpyYXRpbmdzKDM6c2V4MTowKSg4OnZ tZS9ob21lLmh0bWwpKSkoMzp0YWcoNzpyYXRpbmdzKDM6c2V4MToxKSg4OnZ
pb2xlbmNlMTowKSg2OmNyeXB0bzE6NikpKSk=} pb2xlbmNlMTowKSg2OmNyeXB0bzE6OSkpKSk=}
1.8 Virus checking cert This certificate should be self-explanatory. This assigns attributes
to the indicated object (a web page with the indicated hash).
4.2 Virus checking certificate
(cert (cert
(issuer (hash md5 |Ut9m14byPzdbCNZWdDjNQg==|)) (issuer (hash md5 |Ut9m14byPzdbCNZWdDjNQg==|))
(subject (subject
(object-hash (object-hash
(hash md5 |szKSlSK+SNzIsHH3wjAsTQ==| runemacs.exe))) (hash md5 |szKSlSK+SNzIsHH3wjAsTQ==| runemacs.exe)))
(tag virus-free) (tag virus-free)
) )
{KDQ6Y2VydCg2Omlzc3Vlcig0Omhhc2gzOm1kNTE2OlLfZteG8j83WwjWVnQ {KDQ6Y2VydCg2Omlzc3Vlcig0Omhhc2gzOm1kNTE2OlLfZteG8j83WwjWVnQ
4zUIpKSg3OnN1YmplY3QoMTE6b2JqZWN0LWhhc2goNDpoYXNoMzptZDUxNjq 4zUIpKSg3OnN1YmplY3QoMTE6b2JqZWN0LWhhc2goNDpoYXNoMzptZDUxNjq
zMpKVIr5I3MiwcffCMCxNMTI6cnVuZW1hY3MuZXhlKSkpKDM6dGFnMTA6dml zMpKVIr5I3MiwcffCMCxNMTI6cnVuZW1hY3MuZXhlKSkpKDM6dGFnMTA6dml
ydXMtZnJlZSkp} ydXMtZnJlZSkp}
1.9 Full sequence, with donation cert This certificate is even simpler. The issuer is declaring that the
indicated object has been checked and is virus free, in the issuer's
opinion.
5. Full sequence, with auto-certificate
For one full example of a real certificate, the following sequence For one full example of a real certificate, the following sequence
presents the public key used, calls for the verifier to hash it (and presents the public key used, calls for the verifier to hash it (and
store it away, to be referred to later by its hash), gives a store it away, to be referred to later by its hash), gives a
certificate body and then a signature (which by side-effect calls for certificate body and then a signature (which by side-effect calls for
the previous object to be stored and hashed by the signature the previous object to be stored and hashed by the signature
algorithm's hash function). The example used is a temporary donation algorithm's hash function). The example used is a temporary auto-
cert. certificate.
(sequence (sequence
(public-key rsa-pkcs1-md5 (public-key
(e #03#) (rsa-pkcs1-md5
(n (e #11#)
|AKMbo+VBqLu+90l2UuuGquzxLIXpqIypkSkrfEVprA0K2Vfm5ufmNZG3 (n
0yWqdnXlxdGuyyBglj+FloXTrqHWSQQJfvTv5EMBz+icJ2GMbjtP1zCY8 |ALNdAXftavTBG2zHV7BEV59gntNlxtJYqfWIi2kTcFIgIPSjKlHleyi9s
krmchh5v/O3BntEwaq1hkMtmP+ZeFjI5yQ/YC2vVc5K1PTy+GOSP+xvYK 5dDcQbVNMzjRjF+z8TrICEn9Msy0vXB00WYRtw/7aH2WAZx+x8erOWR+yn
C1|) 1CTRLS/68IWB6Wc1x8hiPycMbiICAbSYjHC/ghq2mwCZO7VQXJENzYr45|
) )))
(do hash md5) (do hash md5)
(cert (cert
(issuer (hash md5 |Z4a6hysK/0qN0L5SFkcJFQ==|)) (issuer (hash md5 |+gbUgUltGysNgewRwu/3hQ==|))
(subject (subject
(keyholder (hash md5 |Z4a6hysK/0qN0L5SFkcJFQ==|))) (keyholder (hash md5 |+gbUgUltGysNgewRwu/3hQ==|)))
(tag (tag
(* set (* set
(name "Carl M. Ellison") (name "Carl M. Ellison")
(street "207 Grindall St.") (street "207 Grindall St.")
(city "Baltimore MD 21230-4103"))) (city "Baltimore MD")
(not-after "1997-08-15_00:00:00")) (zip "21230-4103")))
(not-after "1998-04-15_00:00:00"))
(signature (signature
(hash md5 |PC4M1LNpkMHtgacc73ch5A==|) (hash md5 |54LeOBILOUpskE5xRTSmmA==|)
(hash md5 |Z4a6hysK/0qN0L5SFkcJFQ==| cme.key) (hash md5 |+gbUgUltGysNgewRwu/3hQ==|)
|PQkhssqNW191aVwNR9DflDQemWf/E2maSdIk/5GulzRB7cjagEn9FqI9J |HU6ptoaEd7v4rTKBiRrpJBqDKWX9fBfLY/MeHyJRryS8iA34+nixf+8Yh/
vGOTkqT5miJmsFx9pY5nXQxp+tJZdwLYeSEA3iAzjcwBY1qG+DQqpWu2AC buBin9xgcu1lIZ3Gu9UPLnu5bSbiJGDXwKlOuhTRG+lolZWHaAd5YnqmV9h
JqSnnKmo6kh8KbbySNtCbpguNJs2WM/eRBdkph/AUjTkqe0Xnv/mKEXA=| Khws7UM4KoenAhfouKshc8Wgb3RmMepi6t80Arcc6vIuAF4PCP+zxc=|)
) )
) )
with canonical form encoded in base 64: or, in base64:
{KDg6c2VxdWVuY2UoMTA6cHVibGljLWtleTEzOnJzYS1wa2NzMS1tZDUoMTp {KDg6c2VxdWVuY2UoMTA6cHVibGljLWtleSgxMzpyc2EtcGtjczEtbWQ1KDE
lMToDKSgxOm4xMjk6AKMbo+VBqLu+90l2UuuGquzxLIXpqIypkSkrfEVprA0 6ZTE6ESkoMTpuMTI5OgCzXQF37Wr0wRtsx1ewRFefYJ7TZcbSWKn1iItpE3B
K2Vfm5ufmNZG30yWqdnXlxdGuyyBglj+FloXTrqHWSQQJfvTv5EMBz+icJ2G SICD0oypR5XsovbOXQ3EG1TTM40Yxfs/E6yAhJ/TLMtL1wdNFmEbcP+2h9lg
MbjtP1zCY8krmchh5v/O3BntEwaq1hkMtmP+ZeFjI5yQ/YC2vVc5K1PTy+GO GcfsfHqzlkfsp9Qk0S0v+vCFgelnNcfIYj8nDG4iAgG0mIxwv4IatpsAmTu1
SP+xvYKC1KSkoMjpkbzQ6aGFzaDM6bWQ1KSg0OmNlcnQoNjppc3N1ZXIoNDp UFyRDc2K+OSkpKSgyOmRvNDpoYXNoMzptZDUpKDQ6Y2VydCg2Omlzc3Vlcig
oYXNoMzptZDUxNjpnhrqHKwr/So3QvlIWRwkVKSkoNzpzdWJqZWN0KDk6a2V 0Omhhc2gzOm1kNTE2OvoG1IFJbRsrDYHsEcLv94UpKSg3OnN1YmplY3QoOTp
5aG9sZGVyKDQ6aGFzaDM6bWQ1MTY6Z4a6hysK/0qN0L5SFkcJFSkpKSgzOnR rZXlob2xkZXIoNDpoYXNoMzptZDUxNjr6BtSBSW0bKw2B7BHC7/eFKSkpKDM
hZygxOiozOnNldCg0Om5hbWUxNTpDYXJsIE0uIEVsbGlzb24pKDY6c3RyZWV 6dGFnKDE6KjM6c2V0KDQ6bmFtZTE1OkNhcmwgTS4gRWxsaXNvbikoNjpzdHJ
0MTY6MjA3IEdyaW5kYWxsIFN0LikoNDpjaXR5MjM6QmFsdGltb3JlIE1EIDI lZXQxNjoyMDcgR3JpbmRhbGwgU3QuKSg0OmNpdHkxMjpCYWx0aW1vcmUgTUQ
xMjMwLTQxMDMpKSkoOTpub3QtYWZ0ZXIxOToxOTk3LTA4LTE1XzAwOjAwOjA pKDM6emlwMTA6MjEyMzAtNDEwMykpKSg5Om5vdC1hZnRlcjE5OjE5OTgtMDQ
wKSkoOTpzaWduYXR1cmUoNDpoYXNoMzptZDUxNjo8LgzUs2mQwe2BpxzvdyH tMTVfMDA6MDA6MDApKSg5OnNpZ25hdHVyZSg0Omhhc2gzOm1kNTE2OueC3jg
kKSg0Omhhc2gzOm1kNTE2OmeGuocrCv9KjdC+UhZHCRU3OmNtZS5rZXkpMTI SCzlKbJBOcUU0ppgpKDQ6aGFzaDM6bWQ1MTY6+gbUgUltGysNgewRwu/3hSk
4Oj0JIbLKjVtfdWlcDUfQ35Q0Hpln/xNpmknSJP+Rrpc0Qe3I2oBJ/RaiPSb xMjg6HU6ptoaEd7v4rTKBiRrpJBqDKWX9fBfLY/MeHyJRryS8iA34+nixf+8
xjk5Kk+ZoiZrBcfaWOZ10MafrSWXcC2HkhAN4gM43MAWNahvg0KqVrtgAiak Yh/buBin9xgcu1lIZ3Gu9UPLnu5bSbiJGDXwKlOuhTRG+lolZWHaAd5YnqmV
p5ypqOpIfCm28kjbQm6YLjSbNljP3kQXZKYfwFI05KntF57/5ihFwKSk=} 9hKhws7UM4KoenAhfouKshc8Wgb3RmMepi6t80Arcc6vIuAF4PCP+zxcpKQ==}
Authors' Addresses Authors' Addresses
Carl M. Ellison Carl M. Ellison
CyberCash, Inc. CyberCash, Inc.
207 Grindall Street 207 Grindall Street
Baltimore MD 21230-4103 USA Baltimore MD 21230-4103 USA
Telephone: +1 410-727-4288 Telephone: +1 410-727-4288
+1 410-727-4293(FAX) +1 410-727-4293(FAX)
skipping to change at page 9, line 17 skipping to change at page 15, line 17
Tatu Ylonen Tatu Ylonen
SSH Communications Security Ltd. SSH Communications Security Ltd.
Tekniikantie 12 Tekniikantie 12
FIN-02150 ESPOO FIN-02150 ESPOO
Finland Finland
E-mail: ylo@ssh.fi E-mail: ylo@ssh.fi
Expiration and File Name Expiration and File Name
This draft expires 26 May 1998. This draft expires 15 September 1998.
Its file name is draft-ietf-spki-cert-examples-00.txt Its file name is draft-ietf-spki-cert-examples-01.txt
 End of changes. 48 change blocks. 
124 lines changed or deleted 361 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/