throbber
Network Working Group D. Atkins
`Request for Comments: 1991 MIT
`Category: Informational W. Stallings
` Comp-Comm Consulting
` P. Zimmermann
` Boulder Software Engineering
` August 1996
`
` PGP Message Exchange Formats
`
`Status of This Memo
`
` This memo provides information for the Internet community. This memo
` does not specify an Internet standard of any kind. Distribution of
` this memo is unlimited.
`
`Table of Contents
`
` 1. Introduction............................................2
` 2. PGP Services............................................2
` 2.1 Digital signature.......................................3
` 2.2 Confidentiality.........................................3
` 2.3 Compression.............................................4
` 2.4 Radix-64 conversion.....................................4
` 2.4.1 ASCII Armor Formats.....................................5
` 3. Data Element Formats....................................6
` 3.1 Byte strings............................................6
` 3.2 Whole number fields.....................................7
` 3.3 Multiprecision fields...................................7
` 3.4 String fields...........................................8
` 3.5 Time fields.............................................8
` 4. Common Fields...........................................8
` 4.1 Packet structure fields.................................8
` 4.2 Number ID fields.......................................10
` 4.3 Version fields.........................................10
` 5. Packets................................................10
` 5.1 Overview...............................................10
` 5.2 General Packet Structure...............................11
` 5.2.1 Message component......................................11
` 5.2.2 Signature component....................................11
` 5.2.3 Session key component..................................11
` 6. PGP Packet Types.......................................12
` 6.1 Literal data packets...................................12
` 6.2 Signature packets......................................13
` 6.2.1 Message-digest-related fields..........................14
` 6.2.2 Public-key-related fields..............................15
` 6.2.3 RSA signatures.........................................16
`
`Atkins, et. al. Informational [Page 1]
`
`IPR2017-00430
`UNIFIED EX1021
`
`

`

`RFC 1991 PGP Message Exchange Formats August 1996
`
` 6.2.4 Miscellaneous fields...................................16
` 6.3 Compressed data packets................................17
` 6.4 Conventional-key-encrypted data packets................17
` 6.4.1 Conventional-encryption type byte......................18
` 6.5 Public-key-encrypted packets...........................18
` 6.5.1 RSA-encrypted data encryption key (DEK)................19
` 6.6 Public-key Packets.....................................19
` 6.7 User ID packets........................................20
` 7. Transferable Public Keys...............................20
` 8. Acknowledgments........................................20
` 9. Security Considerations................................21
` 10. Authors’ Addresses.....................................21
`
`1. Introduction
`
` PGP (Pretty Good Privacy) uses a combination of public-key and
` conventional encryption to provide security services for electronic
` mail messages and data files. These services include confidentiality
` and digital signature. PGP is widely used throughout the global
` computer community. This document describes the format of "PGP
` files", i.e., messages that have been encrypted and/or signed with
` PGP.
`
` PGP was created by Philip Zimmermann and first released, in Version
` 1.0, in 1991. Subsequent versions have been designed and implemented
` by an all-volunteer collaborative effort under the design guidance of
` Philip Zimmermann. PGP and Pretty Good Privacy are trademarks of
` Philip Zimmermann.
`
` This document describes versions 2.x of PGP. Specifically, versions
` 2.6 and 2.7 conform to this specification. Version 2.3 conforms to
` this specification with minor differences.
`
` A new release of PGP, known as PGP 3.0, is anticipated in 1995. To
` the maximum extent possible, this version will be upwardly compatible
` with version 2.x. At a minimum, PGP 3.0 will be able to read messages
` and signatures produced by version 2.x.
`
`2. PGP Services
`
` PGP provides four services related to the format of messages and data
` files: digital signature, confidentiality, compression, and radix-64
` conversion.
`
`Atkins, et. al. Informational [Page 2]
`
`

`

`RFC 1991 PGP Message Exchange Formats August 1996
`
`2.1 Digital signature
`
` The digital signature service involves the use of a hash code, or
` message digest, algorithm, and a public-key encryption algorithm. The
` sequence is as follows:
`
` -the sender creates a message
` -the sending PGP generates a hash code of the message
` -the sending PGP encrypts the hash code using the sender’s private
` key
` -the encrypted hash code is prepended to the message
` -the receiving PGP decrypts the hash code using the sender’s public
` key
` -the receiving PGP generates a new hash code for the received
` message and compares it to the decrypted hash code. If the two
` match, the message is accepted as authentic
`
` Although signatures normally are found attached to the message or
` file that they sign, this is not always the case: detached signatures
` are supported. A detached signature may be stored and transmitted
` separately from the message it signs. This is useful in several
` contexts. A user may wish to maintain a separate signature log of all
` messages sent or received. A detached signature of an executable
` program can detect subsequent virus infection. Finally, detached
` signatures can be used when more than one party must sign a document,
` such as a legal contract. Each person’s signature is independent and
` therefore is applied only to the document. Otherwise, signatures
` would have to be nested, with the second signer signing both the
` document and the first signature, and so on.
`
`2.2 Confidentiality
`
` PGP provides confidentiality by encrypting messages to be transmitted
` or data files to be stored locally using conventional encryption. In
` PGP, each conventional key is used only once. That is, a new key is
` generated as a random 128-bit number for each message. Since it is to
` be used only once, the session key is bound to the message and
` transmitted with it. To protect the key, it is encrypted with the
` receiver’s public key. The sequence is as follows:
`
` -the sender creates a message
` -the sending PGP generates a random number to be used as a session
` key for this message only
` -the sending PGP encrypts the message using the session key
` -the session key is encrypted using the recipient’s public key and
` prepended to the encrypted message
` -the receiving PGP decrypts the session key using the recipient’s
` private key
`
`Atkins, et. al. Informational [Page 3]
`
`

`

`RFC 1991 PGP Message Exchange Formats August 1996
`
` -the receiving PGP decrypts the message using the session key
`
` Both digital signature and confidentiality services may be applied to
` the same message. First, a signature is generated for the message and
` prepended to the message. Then, the message plus signature is
` encrypted using a conventional session key. Finally, the session key
` is encrypted using public-key encryption and prepended to the
` encrypted block.
`
`2.3 Compression
`
` As a default, PGP compresses the message after applying the signature
` but before encryption.
`
`2.4 Radix-64 conversion
`
` When PGP is used, usually part of the block to be transmitted is
` encrypted. If only the signature service is used, then the message
` digest is encrypted (with the sender’s private key). If the
` confidentiality service is used, the message plus signature (if
` present) are encrypted (with a one-time conventional key). Thus, part
` or all of the resulting block consists of a stream of arbitrary 8-bit
` bytes. However, many electronic mail systems only permit the use of
` blocks consisting of ASCII text. To accommodate this restriction, PGP
` provides the service of converting the raw 8-bit binary stream to a
` stream of printable ASCII characters, called ASCII Armor.
`
` The scheme used for this purpose is radix-64 conversion. Each group
` of three bytes of binary data is mapped into 4 ASCII characters. This
` format also appends a CRC to detect transmission errors. This
` radix-64 conversion, also called Ascii Armor, is a wrapper around the
` binary PGP messages, and is used to protect the binary messages
` during transmission over non-binary channels, such as Internet Email.
`
` The following table defines the mapping. The characters used are the
` upper- and lower-case letters, the digits 0 through 9, and the
` characters + and /. The carriage-return and linefeed characters
` aren’t used in the conversion, nor is the tab or any other character
` that might be altered by the mail system. The result is a text file
` that is "immune" to the modifications inflicted by mail systems.
`
`Atkins, et. al. Informational [Page 4]
`
`

`

`RFC 1991 PGP Message Exchange Formats August 1996
`
` 6-bit character 6-bit character 6-bit character 6-bit character
` value encoding value encoding value encoding value encoding
` 0 A 16 Q 32 g 48 w
` 1 B 17 R 33 h 49 x
` 2 C 18 S 34 i 50 y
` 3 D 19 T 35 j 51 z
` 4 E 20 U 36 k 52 0
` 5 F 21 V 37 l 53 1
` 6 G 22 W 38 m 54 2
` 7 H 23 X 39 n 55 3
` 8 I 24 Y 40 o 56 4
` 9 J 25 Z 41 p 57 5
` 1 K 26 a 42 q 58 6
` 11 L 27 b 43 r 59 7
` 12 M 28 c 44 s 60 8
` 13 N 29 d 45 t 61 9
` 14 O 30 e 46 u 62 +
` 15 P 31 f 47 v 63 /
` (pad) =
`
` It is possible to use PGP to convert any arbitrary file to ASCII
` Armor. When this is done, PGP tries to compress the data before it
` is converted to Radix-64.
`
`2.4.1 ASCII Armor Formats
`
` When PGP encodes data into ASCII Armor, it puts specific headers
` around the data, so PGP can reconstruct the data at a future time.
` PGP tries to inform the user what kind of data is encoded in the
` ASCII armor through the use of the headers.
`
` ASCII Armor is created by concatenating the following data:
`
` - An Armor Headerline, appropriate for the type of data
` - Armor Headers
` - A blank line
` - The ASCII-Armored data
` - An Armor Checksum
` - The Armor Tail (which depends on the Armor Headerline).
`
` An Armor Headerline is composed by taking the appropriate headerline
` text surrounded by five (5) dashes (-) on either side of the
` headerline text. The headerline text is chosen based upon the type
` of data that is being encoded in Armor, and how it is being encoded.
` Headerline texts include the following strings:
`
` BEGIN PGP MESSAGE -- used for signed, encrypted, or compressed files
` BEGIN PGP PUBLIC KEY BLOCK -- used for transferring public keys
`
`Atkins, et. al. Informational [Page 5]
`
`

`

`RFC 1991 PGP Message Exchange Formats August 1996
`
` BEGIN PGP MESSAGE, PART X/Y -- used for multi-part messages, where
` the armor is split amongst Y files,
` and this is the Xth file out of Y.
`
` The Armor Headers are pairs of strings that can give the user or the
` receiving PGP program some information about how to decode or use the
` message. The Armor Headers are a part of the armor, not a part of
` the message, and hence should not be used to convey any important
` information, since they can be changed in transport.
`
` The format of an Armor Header is that of a key-value pair, the
` encoding of RFC-822 headers. PGP should consider improperly
` formatted Armor Headers to be corruption of the ASCII Armor. Unknown
` Keys should be reported to the user, but so long as the RFC-822
` formatting is correct, PGP should continue to process the message.
` Currently defined Armor Header Keys include "Version" and "Comment",
` which define the PGP Version used to encode the message and a user-
` defined comment.
`
` The Armor Checksum is a 24-bit CRC converted to four bytes of radix-
` 64 encoding, prepending an equal-sign (=) to the four-byte code. The
` CRC is computed by using the generator 0x864CFB and an initialization
` of 0xB704CE. The accumulation is done on the data before it is
` converted to radix-64, rather than on the converted data. For more
` information on CRC functions, the reader is asked to look at chapter
` 19 of the book "C Programmer’s Guide to Serial Communications," by
` Joe Campbell.
`
` The Armor Tail is composed in the same manner as the Armor
` Headerline, except the string "BEGIN" is replaced by the string
` "END".
`
`3. Data Element Formats
`
`3.1 Byte strings
`
` The objects considered in this document are all "byte strings." A
` byte string is a finite sequence of bytes. The concatenation of byte
` string X of length M with byte string Y of length N is a byte string
` Z of length M + N; the first M bytes of Z are the bytes of X in the
` same order, and the remaining N bytes of Z are the bytes of Y in the
` same order.
`
` Literal byte strings are written from left to right, with pairs of
` hex nibbles separated by spaces, enclosed by angle brackets: for
` instance, <05 ff 07> is a byte string of length 3 whose bytes have
` numeric values 5, 255, and 7 in that order. All numbers in this
` document outside angle brackets are written in decimal.
`
`Atkins, et. al. Informational [Page 6]
`
`

`

`RFC 1991 PGP Message Exchange Formats August 1996
`
` The byte string of length 0 is called "empty" and written <>.
`
`3.2 Whole number fields
`
` Purpose. A whole number field can represent any nonnegative integer,
` in a format where the field length is known in advance.
`
` Definition. A whole number field is any byte string. It is stored
` in radix-256 MSB-first format. This means that a whole number field
` of length N with bytes b_0 b_1 ... b_{N-2} b_{N-1} in that order has
` value
`
` b_0 * 256^{N-1} + b_1 * 256^{N-2} + ... + b_{N-2} * 256 + b_{N-1}.
`
` Examples. The byte string <00 0D 64 11 00 00> is a valid whole
` number field with value 57513410560. The byte string <FF> is a valid
` whole number field with value 255. The byte string <00 00> is a
` valid whole number field with value 0. The empty byte string <> is a
` valid whole number field with value 0.
`
`3.3 Multiprecision fields
`
` Purpose. A multiprecision field can represent any nonnegative
` integer which is not too large. The field length need not be known
` in advance. Multiprecision fields are designed to waste very little
` space: a small integer uses a short field.
`
` Definition. A multiprecision field is the concatenation of two
` fields:
`
` (a) a whole number field of length 2, with value B;
` (b) a whole number field, with value V.
`
` Field (b) is of length [(B+7)/8], i.e., the greatest integer which is
` no larger than (B+7)/8. The value of the multiprecision field is
` defined to be V. V must be between 2^{B-1} and 2^B - 1 inclusive.
` In other words B must be exactly the number of significant bits in V.
`
` Some implementations may limit the possible range of B. The
` implementor must document which values of B are allowed by an
` implementation.
`
` Examples. The byte string <00 00> is a valid multiprecision integer
` with value 0. The byte string <00 03 05> is a valid multiprecision
` field with value 5. The byte strings <00 03 85> and <00 00 00> are
` not valid multiprecision fields. The former is invalild because <85>
` has 8 significant bits, not 3; the latter is invalid because the
` second field has too many bytes of data given the value of the first
`
`Atkins, et. al. Informational [Page 7]
`
`

`

`RFC 1991 PGP Message Exchange Formats August 1996
`
` field. The byte string <00 09 01 ff> is a valid multiprecision field
` with value 511. The byte string <01 00 80 00 00 00 00 00 00 00 00 00
` 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07> is
` a valid multiprecision field with value 2^255 + 7.
`
`3.4 String fields
`
` Purpose. A string field represents any sequence of bytes of length
` between 0 and 255 inclusive. The length need not be known in
` advance. By convention, the content of a string field is normally
` interpreted as ASCII codes when it is displayed.
`
` Definition. A string field is the concatenation of the following:
`
` (a) a whole number field of length 1, with value L;
` (b) a byte string of length L.
`
` The content of the string field is defined to be field (b).
`
` Examples: <05 48 45 4c 4c 4f> is a valid string field which would
` normally be displayed as the string HELLO. <00> is a valid string
` field which would normally be displayed as the empty string. <01 00>
` is a valid string field.
`
`3.5 Time fields
`
` Purpose. A time field represents the number of seconds elapsed since
` 1970 Jan 1 00:00:00 GMT. It is compatible with the usual
` representation of times under UNIX.
`
` Definition. A time field is a whole number field of length 4, with
` value V. The time represented by the time field is the one-second
` interval beginning V seconds after 1970 Jan 1 00:00:00 GMT.
`
`4. Common Fields
`
` This section defines fields found in more than one packet format.
`
`4.1 Packet structure fields
`
` Purpose. The packet structure field distinguishes between different
` types of packets, and indicates the length of packets.
`
` Definition. A packet structure field is a byte string of length 1,
` 2, 3, or 5. Its first byte is the cipher type byte (CTB), with bits
` labeled 76543210, 7 the most significant bit and 0 the least
` significant bit. As indicated below the length of the packet
` structure field is determined by the CTB.
`
`Atkins, et. al. Informational [Page 8]
`
`

`

`RFC 1991 PGP Message Exchange Formats August 1996
`
` CTB bits 76 have values listed in the following table:
`
` 10 - normal CTB
` 11 - reserved for future experimental work
` all others - reserved
`
` CTB bits 5432, the "packet type bits", have values listed in the
` following table:
`
` 0001 - public-key-encrypted packet
` 0010 - signature packet
` 0101 - secret-key certificate packet
` 0110 - public-key certificate packet
` 1000 - compressed data packet
` 1001 - conventional-key-encrypted packet
` 1011 - literal data packet
` 1100 - keyring trust packet
` 1101 - user id packet
` 1110 - comment packet (*)
` all others - reserved
`
` CTB bits 10, the "packet-length length bits", have values listed in
` the following table:
`
` 00 - 1-byte packet-length field
` 01 - 2-byte packet-length field
` 10 - 4-byte packet-length field
` 11 - no packet length supplied, unknown packet length
`
` As indicated in this table, depending on the packet-length length
` bits, the remaining 1, 2, 4, or 0 bytes of the packet structure field
` are a "packet-length field". The packet-length field is a whole
` number field. The value of the packet-length field is defined to be
` the value of the whole number field.
`
` A value of 11 is currently used in one place: on compressed data.
` That is, a compressed data block currently looks like <A3 01 . . .>,
` where <A3>, binary 10 1000 11, is an indefinite-length packet. The
` proper interpretation is "until the end of the enclosing structure",
` although it should never appear outermost (where the enclosing
` structure is a file).
`
` Options marked with an asterisk (*) are not implemented yet; PGP
` 2.6.2 will never output this packet type.
`
`Atkins, et. al. Informational [Page 9]
`
`

`

`RFC 1991 PGP Message Exchange Formats August 1996
`
`4.2 Number ID fields
`
` Purpose. The ID of a whole number is its 64 least significant bits.
` The ID is a convenient way to distinguish between large numbers such
` as keys, without having to transmit the number itself. Thus, a number
` that may be hundreds or thousands of decimal digits in length can be
` identified with a 64-bit identifier. Two keys may have the same ID by
` chance or by malice; although the probability that two large keys
` chosen at random would have the same ID is extremely small.
`
` Definition. A number ID field is a whole number field of length 8.
` The value of the number ID field is defined to be the value of the
` whole number field.
`
`4.3 Version fields
`
` Many packet types include a version number as the first byte of the
` body. The format and meaning of the body depend on the version
` number. More versions of packets, with new version numbers, may be
` defined in the future. An implementation need not support every
` version of each packet type. However, the implementor must document
` which versions of each packet type are supported by the
` implementation.
`
` A version number of 2 or 3 is currently allowed for each packet
` format. New versions will probably be numbered sequentially up from
` 3. For backwards compatibility, implementations will usually be
` expected to support version N of a packet whenever they support
` version N+1. Version 255 may be used for experimental purposes.
`
`5. Packets
`
`5.1 Overview
`
` A packet is a digital envelope with data inside. A PGP file, by
` definition, is the concatenation of one or more packets. In addition,
` one or more of the packets in a file may be subject to a
` transformation using encryption, compression, or radix-64 conversion.
`
` A packet is the concatenation of the following:
`
` (a) a packet structure field;
` (b) a byte string of some length N.
`
` Byte string (b) is called the "body" of the packet. The value of the
` packet-length field inside the packet structure field (a) must equal
` N, the length of the body.
`
`Atkins, et. al. Informational [Page 10]
`
`

`

`RFC 1991 PGP Message Exchange Formats August 1996
`
` Other characteristics of the packet are determined by the type of the
` packet. See the definitions of particular packet types for further
` details. The CTB packet-type bits inside the packet structure always
` indicate the packet type.
`
` Note that packets may be nested: one digital envelope may be placed
` inside another. For example, a conventional-key-encrypted packet
` contains a disguised packet, which in turn might be a compressed data
` packet.
`
`5.2 General packet structure
`
` A pgp file consists of three components: a message component, a
` signature (optional), and a session key component (optional).
`
`5.2.1 Message component
`
` The message component includes the actual data to be stored or
` transmitted as well as a header that includes control information
` generated by PGP. The message component consists of a single literal
` data packet.
`
`5.2.2 Signature component
`
` The signature component is the signature of the message component,
` formed using a hash code of the message component and the public key
` of the sending PGP entity. The signature component consists of a
` single signature packet.
`
` If the default option of compression is chosen, then the block
` consisting of the literal data packet and the signature packet is
` compressed to form a compressed data packet.
`
`5.2.3 Session key component
`
` The session key component includes the encrypted session key and the
` identifier of the recipients public key used by the sender to encrypt
` the session key. The session key component consists of a single
` public-key-encrypted packet for each recipient of the message.
`
` If compression has been used, then conventional encryption is applied
` to the compressed data packet formed from the compression of the
` signature packet and the literal data packet. Otherwise, conventional
` encryption is applied to the block consisting of the signature packet
` and the literal data packet. In either case, the cyphertext is
` referred to as a conventional-key-encrypted data packet.
`
`Atkins, et. al. Informational [Page 11]
`
`

`

`RFC 1991 PGP Message Exchange Formats August 1996
`
`6. PGP Packet Types
`
` PGP includes the following types of packets:
`
` -literal data packet
` -signature packet
` -compressed data packet
` -conventional-key-encrypted data packet
` -public-key-encrypted packet
` -public-key packet
` -User ID packet
`
`6.1 Literal data packets
`
` Purpose. A literal data packet is the lowest level of contents of a
` digital envelope. The data inside a literal data packet is not
` subject to any further interpretation by PGP.
`
` Definition. A literal data packet is the concatenation of the
` following fields:
`
` (a) a packet structure field;
` (b) a byte, giving a mode;
` (c) a string field, giving a filename;
` (d) a time field;
` (e) a byte string of literal data.
`
` Fields (b), (c), and (d) suggest how the data should be written to a
` file. Byte (b) is either ASCII b <62>, for binary, or ASCII t <74>,
` for text. Byte (b) may also take on the value ASCII 1, indicating a
` machine-local conversion. It is not defined how PGP will convert this
` across platforms.
`
` Field (c) suggests a filename. Field (d) should be the time at which
` the file was last modified, or the time at which the data packet was
` created, or 0.
`
` Note that only field (e) of a literal data packet is fed to a
` message-digest function for the formation of a signature. The
` exclusion of the other fields ensures that detached signatures are
` exactly the same as attached signatures prefixed to the message.
` Detached signatures are calculated on a separate file that has none
` of the literal data packet header fields.
`
`Atkins, et. al. Informational [Page 12]
`
`

`

`RFC 1991 PGP Message Exchange Formats August 1996
`
`6.2 Signature packet
`
` Purpose. Signatures are attached to data, in such a way that only
` one entity, called the "writer," can create the signature. The
` writer must first create a "public key" K and distribute it. The
` writer keeps certain private data related to K. Only someone
` cooperating with the writer can sign data using K, enveloping the
` data in a signature packet (also known as a private-key-encrypted
` packet). Anyone can look through the glass in the envelope and
` verify that the signature was attached to the data using K. If the
` data is altered in any way then the verification will fail.
`
` Signatures have different meanings. For example, a signature might
` mean "I wrote this document," or "I received this document." A
` signature packet includes a "classification" which expresses its
` meaning.
`
` Definition. A signature packet, version 2 or 3, is the concatenation
` of the following fields:
`
` (a) packet structure field (2, 3, or 5 bytes);
` (b) version number = 2 or 3 (1 byte);
` (c) length of following material included in MD calculation
` (1 byte, always the value 5);
` (d1) signature classification (1 byte);
` (d2) signature time stamp (4 bytes);
` (e) key ID for key used for singing (8 bytes);
` (f) public-key-cryptosystem (PKC) type (1 byte);
` (g) message digest algorithm type (1 byte);
` (h) first two bytes of the MD output, used as a checksum
` (2 bytes);
` (i) a byte string of encrypted data holding the RSA-signed digest.
`
` The message digest is taken of the bytes of the file, followed by the
` bytes of field (d). It was originally intended that the length (c)
` could vary, but now it seems that it will alwaye remain a constant
` value of 5, and that is the only value that will be accepted. Thus,
` only the fields (d1) and (d2) will be hashed into the signature along
` with the main message.
`
`Atkins, et. al. Informational [Page 13]
`
`

`

`RFC 1991 PGP Message Exchange Formats August 1996
`
`6.2.1 Message-digest-related fields
`
` The message digest algorithm is specified by the message digest (MD)
` number of field (g). The following MD numbers are currently defined:
`
` 1 - MD5 (output length 16)
` 255 - experimental
`
` More MD numbers may be defined in the future. An implementation need
` not support every MD number. The implementor must document the MD
` numbers understood by an implementation.
`
` A message digest algorithm reads a byte string of any length, and
` writes a byte string of some fixed length, as indicated in the table
` above.
`
` The input to the message digest algorithm is the concatenation of
` some "primary input" and some "appended input."
`
` The appended input is specified by field (c), which gives a number of
` bytes to be taken from the following fields: (d1), (d2), and so on.
` The current implementation uses the value 5 for this number, for
` fields (d1) and (d2). Any field not included in the appended input
` is not "signed" by field (i).
`
` The primary input is determined by the signature classification byte
` (d1). Byte (d1) is one of the following hex numbers, with these
` meanings:
`
` <00> - document signature, binary image ("I wrote this document")
` <01> - document signature, canonical text ("I wrote this document")
` <10> - public key packet and user ID packet, generic certification
` ("I think this key was created by this user, but I won’t say
` how sure I am")
` <11> - public key packet and user ID packet, persona certification
` ("This key was created by someone who has told me that he is
` this user") (#)
` <12> - public key packet and user ID packet, casual certification
` ("This key was created by someone who I believe, after casual
` verification, to be this user") (#)
` <13> - public key packet and user ID packet, positive certification
` ("This key was created by someone who I believe, after
` heavy-duty identification such as picture ID, to be this
` user") (#)
` <20> - public key packet, key compromise ("This is my key, and I
` have revoked it")
`
`Atkins, et. al. Informational [Page 14]
`
`

`

`RFC 1991 PGP Message Exchange Formats August 1996
`
` <30> - public key packet and user ID packet, revocation ("I retract
` all my previous statements that this key is related to this
` user") (*)
` <40> - time stamping ("I saw this document") (*)
`
` More classification numbers may be defined in the future to handle
` other meanings of signatures, but on

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket