Personal Namespace

From Namecoin DNS

Jump to: navigation, search

Contents

Personal Namespace

The Personal Namespace is p/

The purpose of p/ is to "include a personal handle namespace mapping handles to public keys and personal address data."[1]


Format

  • Raw format
  • JSON format


"i" - identity name

PGP

Mapping OpenPGP[2] Message Headers/Footers into Namecoin:

namecoin openPGP header/footer notes
PGPK
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: Namecoin-Test 0.0.1 
 
(ASCII armored public key)
-----END PGP PUBLIC KEY BLOCK-----
{
  "PGPK":"(the ASCII armored public key)"
}

Example: p/example on testnet

PGPM
-----BEGIN PGP MESSAGE-----
Version: Namecoin-Test 0.0.1 
 
(ASCII armored message)
-----END PGP MESSAGE-----
for creating secure messages
{
  "PGPM":"(ASCII armored message)"
}
PGPS
-----BEGIN PGP SIGNATURE-----
Version: Namecoin-Test 0.0.1 
 
(ASCII armored signature)
-----END PGP SIGNATURE-----
{
  "PGS":"(the ASCII armored signature)"
}
PGPM-X-Y
-----BEGIN PGP MESSAGE, PART X/Y-----
Version: Namecoin-Test 0.0.1 
 
(ASCII armored message part)
-----END PGP MESSAGE, PART X/Y-----
{
  "PGM-1-2":"(the ASCII armored message part)"
}
PGPM-X
-----BEGIN PGP MESSAGE, PART X-----
Version: Namecoin-Test 0.0.1 
MessageID: 32-character-string-ID
 
(ASCII armored message part)
-----END PGP MESSAGE, PART X-----
Requires the MESSAGE-ID Armor Header
{
  "PGM-2":"(the ASCII armored message part)",
  "mID":"32-character string of printable characters"
}



Large Keys

Many keys are too large to fit in the block chain. The following format may be used to link to a large key.

namecoin description Example
v Data format version. Currently, there is only one version.
{
  "v":"pka1"
}
fpr OpenPGP fingerprint
{
  "fpr":"0123456789012345678901234567890123456789"
}
uri URI where the key can be obtained
{
  "uri":"http://www.example.com/user.key"
}

Example: Data Format

{"v":"pka1","fpr":"0123456789abcde0123456789abcde0123456789","uri":"http://www.example.com/user.key"}

Example: Importing a key to GnuPG

Search for someone's "p/<name>" name using namecoin

shell$ namecoind name_list p/<name> 1
[
    {
        "name" : "p/<name>",
        "value" : "{\"v\":\"pka1\",\"fpr\":\"0123456789abcde0123456789abcde0123456789\",\"uri\":\"http://www.example.com/user.key\"}",
        "txid" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "expires_in" : 11234
    }
]

Import the key into gpg

shell$ wget -pO - http://www.example.com/user.key | gpg --import
gpg: key xxxxxxxx: public key "p/<name>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

Verify the fingerprint matches

shell$ gpg --fingerprint p/<name> 
pub   4096R/xxxxxxxx 2011-06-23 [expires: 2013-06-22]
      Key fingerprint = 0123 4567 89ab cde0 1234  5678 9abc de01 2345 6789
uid                  p/<name>
sub   4096R/xxxxxxxx 2011-06-23 [expires: 2013-06-22]
shell$ 


Notes

How about space for a BTC receiving address?

Personal tools