Skip to main content

Diffie-Hellman based secret secure exchange.

Project description

DH-secrets

Diffie-Hellman based secret secure exchange.

Installation

Install lib and cli using the following command.

$ pip install dhsecrets

Usage

The package will install a shell utility called dhs-cli

$ dhs-cli -h

usage: dhs-cli [-h] [-p PATH] {list,generate,encode,decode} ...

Diffie-Hellman secrets.

positional arguments:
  {list,generate,encode,decode}

optional arguments:
  -h, --help            show this help message and exit
  -p PATH, --path PATH  Key path

Create keys

We are Alice and we want share a secret with Bob, first step is create a key pair and share the public key with Bob.

$ dhs-cli generate priv -n alice

Created alice-3cf5.pub and alice-3cf5.priv

Bob on his side do the following.

$ dhs-cli generate priv -n bob

Created bob-d740.pub and bob-d740.priv.

List keys

After Alice copy the Bob Public Keyon the key folder she can list the known keys.

$ dhs-cli list priv

[
    {
        "file": "./alice-3cf5.priv",
        "name": "alice",
        "pub": "0319c6697fb8e0d65f0f4d4e93a7fe52ce41e51dfb340a8a2207830158f85e3cf5",
        "encodig": "HEX",
        "timestamp": "Thursday, 08 September 2022 10:43AM"
    }
]

Alice known only 1 private key and 2 publik keys, she can check using the following command.

$ dhs-cli list pub

[
    {
        "file": "./bob-d740.pub",
        "name": "bob",
        "pub": "031bf3ecc3458bec4f34f8d47d2db8d46d7679562e3efa5d71edd10d8f35ccd740",
        "encodig": "HEX",
        "timestamp": "Thursday, 08 September 2022 10:43AM"
    },
    {
        "file": "./alice-3cf5.pub",
        "name": "alice",
        "pub": "0319c6697fb8e0d65f0f4d4e93a7fe52ce41e51dfb340a8a2207830158f85e3cf5",
        "encodig": "HEX",
        "timestamp": "Thursday, 08 September 2022 10:43AM"
    }
]

Encode

Alice can encode the string message using the encode command.

$ dhs-cli encode --priv alice-3cf5.priv --pub bob-d740.pub -P "supersecret"

Created alice-bob-d60c.enc


$ cat alice-bob-d60c.enc

E7irYBYdMxBOZGtu221RZSJc3VSQ8yAVt33NmH2eW959Y6lYyMJoCTAG7Q3kxHLBhbIhGYUPLzraUDwvZeHyaDLQHqnq/7K2XNMvtGOy7wWVtlRuYIBGdNXNslGvugke/kr71xkWEfjgG7sUDYyYXJqxUa2Ol24KPoxPDr+5jJYrzSCzGgRZYhEo/2/rsrANBHN5Z698w/bVB4eC8+KyzIJ51A2HaDz0CCHi73bCsJv6sJPLf6U2HYHdK/xig1XADQYb7eWAVv4C51mTi1iv9LqGKoLgMnUD7GEzXVgbCmhol9CG3ZnsDrrLZy/ntEOj9Q+qMhPdhPzKCoxmJkQf+6xLLRSEmkTi7fg4XlKIoERh4IgJ+blZ3MOngmHz/cJs97WlKnTlK4djr3EHdA2N0WO+YVvJ/lXpXCe1dE1RIJrUc04oJtasXMjlZIB8wDXYIBKzAbR8+khgw9/Oapm/BZBBmHpM36yIGgz0zmmnCybYJOagXT93LkatOWK/olqc

Decode

Bob can decode the message using the decode command.

$ dhs-cli decode --priv bob-d740.priv --pub alice-3cf5.pub -F alice-bob-d60c.enc | jq

{
  "from": "0319c6697fb8e0d65f0f4d4e93a7fe52ce41e51dfb340a8a2207830158f85e3cf5",
  "to": "031bf3ecc3458bec4f34f8d47d2db8d46d7679562e3efa5d71edd10d8f35ccd740",
  "type": "string",
  "payload": "supersecret",
  "payload_signature": "maYEEc7yhP/iP/8ZtoiuomVtLtXp2FHfrJz0IZvCpR5NDOUpCpBG4WbU3LWGk6Lf0e/ORhNFBXFhXCXyzUw84w==",
  "local_timestamp": "Thursday, 08 September 2022 01:23PM"
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

DHsecrets-0.0.2.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

DHsecrets-0.0.2-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file DHsecrets-0.0.2.tar.gz.

File metadata

  • Download URL: DHsecrets-0.0.2.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.2

File hashes

Hashes for DHsecrets-0.0.2.tar.gz
Algorithm Hash digest
SHA256 b2900bd51fbc578347406efb92778c53f3d57ddaa12d6dcf7c86b2d29d091780
MD5 13a0a60e8cd6f32865605602ff07ad0c
BLAKE2b-256 a2a5ce2f479e5c3de405887a28c467a84328163e61eb9f284003f402cb5530d4

See more details on using hashes here.

File details

Details for the file DHsecrets-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: DHsecrets-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.2

File hashes

Hashes for DHsecrets-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b02fd95e653c081918fb1c7e1a145b768317361b316248bd44090194e1d4529d
MD5 f4856e5ad9d0ec1de0bd566c4ec81942
BLAKE2b-256 1176bf7a6714ae9faa38f08a009f32d72465458e22ac6bf2f558862ab1e2ae08

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page