Personal Namespace

From Namecoin DNS

Jump to: navigation, search

This page has not yet been migrated to the new wiki but it may have been partially moved or simply out of date. Instead of editing this page, please take a moment and help move it to the new wiki.

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]

The major use case of this feature is to assure the integrity of an individual's public keys and addresses. If a person can adequately authenticate themselves to some party, that party can independently verify their addresses and public keys using the namecoin p/ namespace.

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