Git Product home page Git Product logo

gpg2openpgpkey's Introduction

gpg2openpgpkey

DNS OPENPGPKEY record generator
Author: Shumon Huque

A command line program that generates a DNS OPENPGPKEY resource record (in textual presentation format) from a given email address and file containing a GPG key.

Pre-requisites:

  • GNUpg, version 2.x (recommended, although works with 1.x too)
  • Python 2.7 or later, or Python 3
$ gpg2openpgpkey -h

gpg2openpgpkey.py version 0.1
Usage: gpg2openpgpkey.py [-g] [-h] <email> <gpgkeyfile>

       -g       Output DNS generic RDATA format (rather than OPENPGPKEY)
       -d DIR   Use DIR as base directory (default: /tmp/openpgpkey
       -c       Create and cleanup base directory as needed
       -h       Print this help message

Given an email address and a file containing a GPG public key, this program
generates a corresponding DNS OPENPGPKEY resource record in presentation
format.

This program uses /tmp/openpgpkey as the base directory for the temporary GPG
keyring files it generates. Make sure this directory exists and is writable
by the invoker. Or use the "-c" option to have the directory automatically
created and deleted.

Some example output:

$ gpg2openpgpkey.py [email protected] test/key-ed25519-gaspara.asc

OpenPGPKey:
  keyid=5D388423C8F0A689 fpr=BF067A224E73007BA1C09DDA5D388423C8F0A689
  algorithm=22 (Ed25519) keylen=256 flags=[scESC]
  CreateDate: 2016-05-02
    uid: "Gaspard d'Hautefeuille" <[email protected]>
SubKey:
  keyid=A1A614F940DE794D fpr=5B7115DC092F350118FBF6D9A1A614F940DE794D
  algorithm=18 (ECDH) keylen=256 flags=[e]
  CreateDate: 2016-05-02

18fb60acb12a08530d95f8a11c43d917f0a2fd12f95ac4f96d469a0a._openpgpkey.dhautefeuille.eu. IN OPENPGPKEY (
                  mDMEVyeX/hYJKwYBBAHaRw8BAQdAU+F0jSwToQ2ddh5HPcE+QUwp3ZjufJtZ
                  31LQiq/92b60MUdhc3BhcmQgZCdIYXV0ZWZldWlsbGUgPGdhc3BhcmRAZGhh
                  dXRlZmV1aWxsZS5ldT6IfwQTFggAJwUCVyeX/gIbAwUJBaOagAULCQgHAgYV
                  CAkKCwIEFgIDAQIeAQIXgAAKCRBdOIQjyPCmicMuAPwLl+j0qfdet9MqAFQo
                  tTo5zkCyDi0ep9T+HxyzI1MEhwEAr/UmWC9/0EKQfEE0EnE6ja5bjBEwkUpb
                  xMlHlm2uEQu4OARXJ5f+EgorBgEEAZdVAQUBAQdAEOdBZ2Ob2VrM/+DLFaJt
                  Cck9kjcRI7ca586/zysZlg0DAQgHiGcEGBYIAA8FAlcnl/4CGwwFCQWjmoAA
                  CgkQXTiEI8jwpokY0QEAnP3YkqBV8hs5YodqqEBks/3kC/x2nrHfjLizaUyV
                  9bQA/A8gCB9CQkfSyZUA8AncxwcqbI19rcclaSxluaf2X44K
)
$ gpg2openpgpkey.py [email protected] /tmp/key1.asc

OpenPGPKey:
  keyid=7B5CC91ED5FD4336 fpr=304E0AA4B055C944350EF6A87B5CC91ED5FD4336
  algorithm=1 (RSA) keylen=2048 flags=[scESC]
  CreateDate: 2014-04-16
    uid: "Shumon Huque" <[email protected]>
    uid: "Shumon Huque" <[email protected]>
    uid: "Shumon Huque" <[email protected]>
    uid: "Shumon Huque" <[email protected]>
SubKey:
  keyid=B2B5852A1E2B752A fpr=2359800E3D38C9AA453B5E8AB2B5852A1E2B752A
  algorithm=1 (RSA) keylen=2048 flags=[e]
  CreateDate: 2014-04-16

adcd5698c7fc6c44e65e893ab7e84a638db4910d04e8e53314e8a101._openpgpkey.huque.com. IN OPENPGPKEY (
                  mQENBFNPDOkBCADAZikSR4TvRxMtU0WhbWFkZvXWOYdhWSPigqbsy7T5PTNa
                  ALwPJaMGX5JLg/+T7kJK6WFjFfvuIc60PD5Rn71df/SqvyRdx2fWjWyjzvNf
                  pY9IdeouIUKhWTyL+XTxhog4Vcq0MpouePm9lXORE2PxNNjRkrO1RuttiQ9x
                  AqN+Mw2KJt+oP3cwIIKKD6s0igTz11cBb+7akogdjZv5kXdmkbXNqekqScIP
                  /iRw80lv80XS4FLOQizpQE3Owd7Y2eRY3KiydKEVFiV2mWHb2zK/p7zqt4Xs
                  5cYncnLVt7dHy4smXfgRDpx7aK+LxQDwXxI6C1fQM7MJRJbhs/l9YKI1ABEB
                  AAG0H1NodW1vbiBIdXF1ZSA8c2h1cXVlQHVwZW5uLmVkdT6JATgEEwECACIF
                  AlNPDyYCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEHtcyR7V/UM2
                  IdYH/17ZgkMzUjNyij1S5gDDxCAbITDQAm9bCqrvssvD1m7u3c05Zmm05ciM
                  nPaOREGIQ6oFpYQP2F+pDeVBMmzLiLEkw9yVu18hurg4cnBvq6bIL7K43ME5
                  hWXu31G6HvYsaMpOnSxt1vmtDpgj9UyN/KFBHzzlcY2qJbI90VCubzgBQuU1
                  4+NT2ZLYOedGBWlUpx1kRSHEOCkMebUKZl8I7ebO/2/h4LVYnLDjWMbaUrgn
                  hLi8xqYq/vmsWCpSkA3WZZTlaiCk7tDwmdR1YJoJixa42xkJ58CC2YYe1yF4
                  +5XK6dGVP2PL6/XPfS3pFf2FOXOSr9WVSyvBJlBxUjpz0We0H1NodW1vbiBI
                  dXF1ZSA8c2h1cXVlQGh1cXVlLmNvbT6JATgEEwECACIFAlNPDOkCGwMGCwkI
                  BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEHtcyR7V/UM24bkIAJ9a60Tl96A9
                  5G4ow6leNPwUbpB4PFfOBPXaEPtQsug7NObeaS5cusrAqlhRtZY7TE7QqYSz
                  byKB4tHkaTDRDPjk85fB9nvHdFDv42s7O2Zos+MFMOUBN626Ejp8WmWBHPcw
                  vdFRb6Cp4c11txU7ShAlvQJ6uHff57ugGxYloEbaVILMU5iprk7GtdXJWkgW
                  jLOvLHr+fG2c59kYCI/8eMoyDp5ACGAHRUKV68yyZrpGBFRCQMZ3RDFVpGNd
                  zyZKHcvgEMwlpZoIgI6t9IQFMG8iRqGh/qx8LYeNFC9z2A0+28SDpqtB5/HA
                  O/QWJEi9iJSRt+J2SNTU0mI8rxUkE320H1NodW1vbiBIdXF1ZSA8c2h1cXVl
                  QGdtYWlsLmNvbT6JATgEEwECACIFAlNPDwgCGwMGCwkIBwMCBhUIAgkKCwQW
                  AgMBAh4BAheAAAoJEHtcyR7V/UM2CGYIAK9AF9wEvESkZXJfIQSf73A3jzwE
                  YjXVdWK9BnirYQOX6AynOf5uuDQLl305d8EAz7bB/iMF28wscxe001AyX7F+
                  dprF2wpBxPDLIVBfGuXP4JQ/rNqIOLc8pknT5gjzjp7mf7tObeURFi77Enmm
                  7Ubnk/jtcNSbPvyhVQNCLcL8su+4OJnGL9PgVeYpYVvkYx6u/OAt3BGlcL3o
                  SwY9EuxvQKjidStY8xYnPpsLusBYgwsgjfCw4J5HOjV0j0kvJMXKEHCpKWYf
                  YmG/LfuknyOZ9B6w7bng3vDcV11gcVZwsLivLceIr+LMdDT8wJRidykAhPxK
                  HHEqNpLkg6fHXxm0IlNodW1vbiBIdXF1ZSA8c2h1cXVlQHZlcmlzaWduLmNv
                  bT6JATgEEwECACIFAlNPERICGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheA
                  AAoJEHtcyR7V/UM26BoH/iC3OBoTfV02ATh6Rz+CH4xnKq+qOvTrTDtnnJIZ
                  LZu32UIttJr+bmvbnEB9OoArQlkAQrZCP01BXoUb9EB2WK3gkp60iuptdekb
                  Lcs4pE+ykqbGvUnOEZa4RXVSDQracQsB6dcqlOOQorlYFuoTKhwQnfIsq+8P
                  c6Wf9r6LvsABampIrl3i/vv/ugDFo2tgdYKNMoz0b++GyvY4nFqTye339esT
                  d0LeJOHXWBuUp3v9h4LqvHvOPmWbwzcCyOPqA19ysvfhWMg5m04lphFAepcY
                  gf6fHh2ZEp9y/ewo/5WkR6rpoI29VtIenIip8bBpjtHLMCGyL4uwf9MoPEti
                  Sb65AQ0EU08M6QEIAOXjUAtI7ZpGB0+kT9Vr/kwoMNUvCc1uyz8yn6jA1XpI
                  Lh7mcx6V+zzB+GpC5+iOHl2GgFAlD89fB6UEyAhD0utFDDUawEBkzU/uj6yC
                  ze5FVYfDka9xX9GfKRmLVuDujF96VsUFzc0tIkzBiHVylr2WszY+MvtfJEER
                  UidGk7mUnNHuZYrRdMM1sF8Pn31u2zBxe1gb3kgRMJVOFNuc7UIYt8QVUnla
                  NBJ60NoNXQkMgFdhtW9YGDZsTHiJq5YrIVKzKsMft2KUWUN41VcKRIw/STD+
                  5mnIGZwIWSpOVPvvujkOlSO7AnHoyl5mQbhpO4R76BrUHngk53JuxKE4u9cA
                  EQEAAYkBHwQYAQIACQUCU08M6QIbDAAKCRB7XMke1f1DNtbAB/4hdah7V5oT
                  JdxbZZQxGHaHnarRBRmGlJlhObZpBIKQnNxr8f6mhgoy6ajveWM/RfiUNxex
                  +hSQshQDThPLKi2KNkp0gijB2RMK+0i4ikMRL24GqF/8ARel1KsastJ9Z4TS
                  9UBIh4MVeg44eMsMyvBwVi28BcgMHnrhXKJIM8xYjuXIYcnh/FsPYtn4NQmR
                  LCo3cHPG8AA4QBLGXhlfN8PefU4awjX/ig+KXJiBtaYyKxKQp7jKZDcjICJd
                  wFrgi09L6H4pkT4CLJM/OBcUB+JlkBPxyTelXhduJIDRxEy1gLlQijlVBZxe
                  vd4bOavKSL3b8L7QitewKsVdiptiFhwr
)
$ gpg2openpgpkey.py -g [email protected] /tmp/key1.asc

OpenPGPKey:
  keyid=7B5CC91ED5FD4336 fpr=304E0AA4B055C944350EF6A87B5CC91ED5FD4336
  algorithm=1 (RSA) keylen=2048 flags=[scESC]
  CreateDate: 2014-04-16
    uid: "Shumon Huque" <[email protected]>
    uid: "Shumon Huque" <[email protected]>
    uid: "Shumon Huque" <[email protected]>
    uid: "Shumon Huque" <[email protected]>
SubKey:
  keyid=B2B5852A1E2B752A fpr=2359800E3D38C9AA453B5E8AB2B5852A1E2B752A
  algorithm=1 (RSA) keylen=2048 flags=[e]
  CreateDate: 2014-04-16

adcd5698c7fc6c44e65e893ab7e84a638db4910d04e8e53314e8a101._openpgpkey.huque.com. IN TYPE61 \# 2229 (                  99010d04534f0ce9010800c06629124784ef47132d5345a16d616466f5d6
                  3987615923e282a6eccbb4f93d335a00bc0f25a3065f924b83ff93ee424a
                  e9616315fbee21ceb43c3e519fbd5d7ff4aabf245dc767d68d6ca3cef35f
                  a58f4875ea2e2142a1593c8bf974f186883855cab4329a2e78f9bd957391
                  1363f134d8d192b3b546eb6d890f7102a37e330d8a26dfa83f773020828a
                  0fab348a04f3d757016feeda92881d8d9bf991776691b5cda9e92a49c20f
                  fe2470f3496ff345d2e052ce422ce9404dcec1ded8d9e458dca8b274a115
                  1625769961dbdb32bfa7bceab785ece5c6277272d5b7b747cb8b265df811
                  0e9c7b68af8bc500f05f123a0b57d033b3094496e1b3f97d60a235001101
                  0001b41f5368756d6f6e204875717565203c736875717565407570656e6e
                  2e6564753e8901380413010200220502534f0f26021b03060b0908070302
                  06150802090a0b0416020301021e01021780000a09107b5cc91ed5fd4336
                  21d607ff5ed98243335233728a3d52e600c3c4201b2130d0026f5b0aaaef
                  b2cbc3d66eeeddcd396669b4e5c88c9cf68e44418843aa05a5840fd85fa9
                  0de541326ccb88b124c3dc95bb5f21bab83872706faba6c82fb2b8dcc139
                  8565eedf51ba1ef62c68ca4e9d2c6dd6f9ad0e9823f54c8dfca1411f3ce5
                  718daa25b23dd150ae6f380142e535e3e353d992d839e746056954a71d64
                  4521c438290c79b50a665f08ede6ceff6fe1e0b5589cb0e358c6da52b827
                  84b8bcc6a62afef9ac582a52900dd66594e56a20a4eed0f099d475609a09
                  8b16b8db1909e7c082d9861ed72178fb95cae9d1953f63cbebf5cf7d2de9
                  15fd85397392afd5954b2bc1265071523a73d167b41f5368756d6f6e2048
                  75717565203c7368757175654068757175652e636f6d3e89013804130102
                  00220502534f0ce9021b03060b090807030206150802090a0b0416020301
                  021e01021780000a09107b5cc91ed5fd4336e1b908009f5aeb44e5f7a03d
                  e46e28c3a95e34fc146e90783c57ce04f5da10fb50b2e83b34e6de692e5c
                  bacac0aa5851b5963b4c4ed0a984b36f2281e2d1e46930d10cf8e4f397c1
                  f67bc77450efe36b3b3b6668b3e30530e50137adba123a7c5a65811cf730
                  bdd1516fa0a9e1cd75b7153b4a1025bd027ab877dfe7bba01b1625a046da
                  5482cc5398a9ae4ec6b5d5c95a48168cb3af2c7afe7c6d9ce7d918088ffc
                  78ca320e9e40086007454295ebccb266ba4604544240c677443155a4635d
                  cf264a1dcbe010cc25a59a08808eadf48405306f2246a1a1feac7c2d878d
                  142f73d80d3edbc483a6ab41e7f1c03bf4162448bd889491b7e27648d4d4
                  d2623caf1524137db41f5368756d6f6e204875717565203c736875717565
                  40676d61696c2e636f6d3e8901380413010200220502534f0f08021b0306
                  0b090807030206150802090a0b0416020301021e01021780000a09107b5c
                  c91ed5fd433608660800af4017dc04bc44a465725f21049fef70378f3c04
                  6235d57562bd0678ab610397e80ca739fe6eb8340b977d3977c100cfb6c1
                  fe2305dbcc2c7317b4d350325fb17e769ac5db0a41c4f0cb21505f1ae5cf
                  e0943facda8838b73ca649d3e608f38e9ee67fbb4e6de511162efb1279a6
                  ed46e793f8ed70d49b3efca15503422dc2fcb2efb83899c62fd3e055e629
                  615be4631eaefce02ddc11a570bde84b063d12ec6f40a8e2752b58f31627
                  3e9b0bbac058830b208df0b0e09e473a35748f492f24c5ca1070a929661f
                  6261bf2dfba49f2399f41eb0edb9e0def0dc575d60715670b0b8af2dc788
                  afe2cc7434fcc0946277290084fc4a1c712a3692e483a7c75f19b4225368
                  756d6f6e204875717565203c73687571756540766572697369676e2e636f
                  6d3e8901380413010200220502534f1112021b03060b0908070302061508
                  02090a0b0416020301021e01021780000a09107b5cc91ed5fd4336e81a07
                  fe20b7381a137d5d3601387a473f821f8c672aafaa3af4eb4c3b679c9219
                  2d9bb7d9422db49afe6e6bdb9c407d3a802b42590042b6423f4d415e851b
                  f4407658ade0929eb48aea6d75e91b2dcb38a44fb292a6c6bd49ce1196b8
                  4575520d0ada710b01e9d72a94e390a2b95816ea132a1c109df22cabef0f
                  73a59ff6be8bbec0016a6a48ae5de2fefbffba00c5a36b6075828d328cf4
                  6fef86caf6389c5a93c9edf7f5eb137742de24e1d7581b94a77bfd8782ea
                  bc7bce3e659bc33702c8e3ea035f72b2f7e158c8399b4e25a611407a9718
                  81fe9f1e1d99129f72fdec28ff95a447aae9a08dbd56d21e9c88a9f1b069
                  8ed1cb3021b22f8bb07fd3283c4b6249beb9010d04534f0ce9010800e5e3
                  500b48ed9a46074fa44fd56bfe4c2830d52f09cd6ecb3f329fa8c0d57a48
                  2e1ee6731e95fb3cc1f86a42e7e88e1e5d868050250fcf5f07a504c80843
                  d2eb450c351ac04064cd4fee8fac82cdee455587c391af715fd19f29198b
                  56e0ee8c5f7a56c505cdcd2d224cc188757296bd96b3363e32fb5f244111
                  52274693b9949cd1ee658ad174c335b05f0f9f7d6edb30717b581bde4811
                  30954e14db9ced4218b7c41552795a34127ad0da0d5d090c805761b56f58
                  18366c4c7889ab962b2152b32ac31fb76294594378d5570a448c3f4930fe
                  e669c8199c08592a4e54fbefba390e9523bb0271e8ca5e6641b8693b847b
                  e81ad41e7824e7726ec4a138bbd7001101000189011f0418010200090502
                  534f0ce9021b0c000a09107b5cc91ed5fd4336d6c007fe2175a87b579a13
                  25dc5b6594311876879daad105198694996139b6690482909cdc6bf1fea6
                  860a32e9a8ef79633f45f8943717b1fa1490b214034e13cb2a2d8a364a74
                  8228c1d9130afb48b88a43112f6e06a85ffc0117a5d4ab1ab2d27d6784d2
                  f540488783157a0e3878cb0ccaf070562dbc05c80c1e7ae15ca24833cc58
                  8ee5c861c9e1fc5b0f62d9f83509912c2a377073c6f000384012c65e195f
                  37c3de7d4e1ac235ff8a0f8a5c9881b5a6322b1290a7b8ca64372320225d
                  c05ae08b4f4be87e29913e022c933f38171407e2659013f1c937a55e176e
                  2480d1c44cb580b9508a3955059c5ebdde1b39abca48bddbf0bed08ad7b0
                  2ac55d8a9b62161c2b
)

gpg2openpgpkey's People

Contributors

nils-wisiol avatar shuque avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

slashtpa sycured

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.