Access experimental subpackets of 'User Attribute Packet'

David Srbecky dsrbecky at
Thu Aug 11 18:19:54 CEST 2005


I have payed with the idea of using experimental subpackets of 'User 
Attribute Packet' and here is what I came up with:

Named Attribute Subpacket (type 100)
Subpacket specific data:
    magic identification number
    datatype - identifier - eg. 4 - UTF8 string
    name - UTF8 string - eg. "ICQ#"
    data - depends on datatype - eg. "123-456-789"

NB: size of data can be calculated from size of subpacket (it is just 
the remaining data)

    0 - reserved
    1 - no data (it is just named flag)
    2 - boolean
    3 - integer
    4 - UTF8 string
    5 - URL
    6 - image
    7 - binary
    8 - binary file
    100-110 - private or experimental use

NB: Binary type holds just some unspecified binary data. On the other 
hand, binary file type holds file that can be saved to disk and the name 
of the attribute represents its filename.

In my humble opinion this is the most important attribute of all. This 
attribute is supposed to be used for any user specific or program 
specific data. It is similar to the mail X- headers - it allows users to 
store identifiable information, which is not suitable for 
standardization or is not standardized yet.

vCard Subpacket (type 102)
Subpacket specific data:
    magic identification number
    data - content of the vCard file

You can store you name, email and Photo ID in your public key, but what 
about other information? I suggest to add 'vCard Subpacket' because 
vCard is already known and supported format in MUAs and so the cost of 
implementing this should be minimal.

Property Subpacket (type 103)
Subpacket specific data:
    magic identification number
    id - identifier - eg. 1
    data - depends on id - eg. true

There are a lot of little attributes which we may want to store in this 
subpacket. For example:

1 - public key url
2 - prefers signed mail
3 - prefers encrypted mail
4 - preferred format
5 - supports MIME format
6 - supports inline format

'Property Subpacket' does not really describe the purpose of the 
subpacket, but I could not find any better name. Any suggestions?

It there any way I can use GnuPG to store and load this information?

David Srbecky


 > 5.12. User Attribute Packet (Tag 17)
 >     The User Attribute packet is a variation of the User ID packet.  It
 >     is capable of storing more types of data than the User ID packet
 >     which is limited to text.  Like the User ID packet, a User Attribute
 >     packet may be certified by the key owner ("self-signed") or any
 >     other key owner who cares to certify it.  Except as noted, a User
 >     Attribute packet may be used anywhere that a User ID packet may be
 >     used.
 >     While User Attribute packets are not a required part of the OpenPGP
 >     standard, implementations SHOULD provide at least enough
 >     compatibility to properly handle a certification signature on the
 >     User Attribute packet.  A simple way to do this is by treating the
 >     User Attribute packet as a User ID packet with opaque contents, but
 >     an implementation may use any method desired.
 >     The User Attribute packet is made up of one or more attribute
 >     subpackets.  Each subpacket consists of a subpacket header and a
 >     body. The header consists of:
 >       - the subpacket length (1, 2, or 5 octets)
 >       - the subpacket type (1 octet)
 >     and is followed by the subpacket specific data.
 >     The only currently defined subpacket type is 1, signifying an image.
 >     An implementation SHOULD ignore any subpacket of a type that it does
 >     not recognize.  Subpacket types 100 through 110 are reserved for
 >     private or experimental use.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 254 bytes
Desc: OpenPGP digital signature
Url : /pipermail/attachments/20050811/9e2f4825/signature.pgp

More information about the Gnupg-users mailing list