Spezifische Speicherung für das Teilen öffentlicher Tasten von Paaren ECDH durch Curve25519.
Der Service bietet eine HTTP-API für das Speichern und Lesen eines 32-Byten-Schlüssels mit menschlichem Lesbaremamen (AKA. Alias).
Dieser Service löst ein Problem für den anhaltenden Sparen des öffentlichen Schlüssels und senden Sie sie über einen offenen Kommunikationskanal an den Empfänger.
Sie sollten dieses Modell verwenden:
{
"name" : " Some Name " ,
"key" : " base64== "
}Wo:
name - Zeichenfolge mit Länge mehr als 1000 Zeichenkey - Codeted to Base64 32 -Bytes Public Key Sparen Sie den öffentlichen Schlüssel:
curl -X POST " https://pspk.now.sh " -d ' {"name":"Some.Name","key":"E7+TL112lj1GmJRHf9jT5MZJDgYIhUbtBLc4/ZFMZ5c="} '
{ " access " :true, " msg " : " added " }Lesen Sie den öffentlichen Schlüssel:
curl -X POST " https://pspk.now.sh " -d ' {"name":"Some.Name"} '
{ " access " :true, " key " : " wTaZA5+QeZpby33W2T5uV8TweWaPEZn3clTe5xkmb2M= " }ERHALTEN:
GET /?output=json-array&limit=500&last_key=&last_key=5c93d5b8149588f7c7638546 Antwort: [
{ "id" : " 5c952b5e149588f7c777c7b6 " , "name" : " x1 " , "key" : " wTaZA5+QeZpby33W2T5uV8TweWaPEZn3clTe5xkmb2M= " },
{ "id" : " 5c952b62149588f7c777ca52 " , "name" : " x2 " , "key" : " ApYM2UsdUxFas5AF16W605950ke2iXPd5sDhg287xnM= " }
]GET /?link=5d06a65da5cdb90006989577 Antwort: { "data" : " 123 " }GET /?name_key=alice -Antwort [{"id":"5c9bd58b149588f7c71bce91","name":"alice","key":"E7+TL112lj1GmJRHf9jT5MZJDgYIhUbtBLc4/ZFMZ5c="}]
Holen Sie sich den öffentlichen Schlüssel im QR -Code mit Namen GET /?qr_code=alice . Die Antwort enthält Byes für image/png .
REGEXP name.* GET /?name_regex=Some Antwort
[{"id":"5c9bd58b149588f7c71bce91","name":"Some.Name","key":"E7+TL112lj1GmJRHf9jT5MZJDgYIhUbtBLc4/ZFMZ5c="},...]
POST:
POST / mit Körper {"method":"link","data":"base64=="} , Antwort, Antwort { "link" : " 5d06a65da5cdb90006989577 " }POST / mit Körper {"name":"alice","key":"base64=="} , Antwort, Antwort { "msg" : " added " }POST / mit Körper {"name":"alice"} , Antwort { "msg" : " base64== " } pspk - Konsolen -Tool, das API zum PSPK verwendet und Verschlüsselung/Entschlüsselung für einen oder mehrere Empfänger implementiert.
$ pspk --help
NAME:
pspk - pspk - encrypt you message and send through open communication channel
USAGE:
pspk [global options] command [command options] [arguments...]
VERSION:
0.1.2
DESCRIPTION:
Console tool for encyption/decription data through pspk.now.sh
COMMANDS:
publish, p --name <NAME> publish
secret, s secret public_name
encrypt, e ecnrypt pub_name some message will encrypt
ephemeral-encrypt, ee ee pub_name some message will encrypt
decrypt, d decrypt pub_name base64==
ephemeral-decrypt, ed ephemeral-decryp pub_name base64==
use-current, uc --name name_pub_key use-current
group, g --name base_name group
start-group, sg start-group groupName [pubName1 pubName2 ...]
finish-group, fg finish-group groupName pubName1 [pubName2 ...]
secret-group, seg secret-group groupName pubName1 [pubName2 ...]
encrypt-group, eg eg <GROUP_NAME> message
ephemeral-encrypt-group, eeg Encrypt input message with ephemeral key
decrypt-group, dg dg <GROUP_NAME> base64
ephemeral-decrypt-group, edg Decrypt input message with ephemral shared key
sign, s --name <KEY_NAME> sign <MESSAGE>
verify, v verify <KEY_NAME> <SIGNATURE_IN_BASE64> <MESSAGE>
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--name value key name
--help, -h show help
--version, -v print the version
Wird private und öffentliche Schlüssel erzeugen und öffentliche PICE an pspk.now.sh. veröffentlichen.
pspk --name < NAME_YOUR_KEY > publishWird die Verschlüsselungsnachricht über Ihren privaten Schlüssel und Ihren öffentlichen Schlüsselnamen von pspk.now.sh.
pspk --name < NAME_YOUR_KEY > encrypt < PUBLIC_PART_NAME > < SOME_MESSAGE_WITH_SPACES >Oder Verschlüsselung mit Ephemralschlüssel
pspk ephemeral-encrypt < PUBLIC_PART_NAME > < SOME_MESSAGE_WITH_SPACES > Auch Encrypt -Befehle verfügen über ein Boolean -Flag --link zum Hochladen verschlüsselter Daten auf den Server. Und Generation Link 24 Stunden für Zugriffsdaten.
pspk ephemeral-encrypt --link < PUBLIC_PART_NAME > < SOME_MESSAGE_WITH_SAPCES >Ausgabe:
base64ofencpryteddata==
https://pspk.now.sh/ ? link=5d07c5264f818b00069f5ddaDaten nach diesem Link erhalten. Retenden Sie JSON zurück:
{ "data" : " MmeSOsti98jaancR+qsbNtpL6nwPtov2p9U5diP7ahbSAhkwsYbgYMRAHMbO/gry " }wobei Daten verschlüsselte Daten enthalten.
Wird die Meldung über Ihren privaten Schlüssel und Ihren öffentlichen Schlüsselnamen von pspk.now.sh.
pspk --name < NAME_YOUR_KEY > decrypt < PUBLIC_PART_NAME > < SOME_BASE64_WITH_SPACES >Oder Nutzung mit Ephemralschlüssel
pspk --name < NAME_YOUR_KEY > ephemeral-decrypt < SOME_MESSAGE_WITH_SPACES > Entschlüsseln Befehle haben auch ein Flag --link <URL> -Schnl -Flag zum Herunterladen von eCnrypted -Daten vom Server.
Beispiel:
pspk --name < NAME_YOUR_KEY > ephemeral-decrypt --link https://pspk.now.sh/ ? link=5d07c5264f818b00069f5ddaFür die Verschlüsselung/Entschlüsselungsbedarf generieren Sie gemeinsames Geheimnis in der Gruppe. Verwenden Sie diesen Algorithmus (Cliques) iv.a
base und veröffentlichen Sie an pspk.now.sh pspk --name base group
base geheim. pspk --name alice start-group base
pspk --name bob start-group base alice
pspk --name carol start-group base bob aliceDie letzten Mitglieder erzeugen Zwischengeheimnisse.
pspk --name daron finish-group base carol bob aliceMitglieder können mit Zwischenschlüssel gemeinsam genutzte Geheimtasten generieren.
pspk --name daron secret-group base carol bob alice
pspk --name carol secret-group base daron bob alice
pspk --name bob secret-group base daron carol alice
pspk --name alice secret-group base daron carol bobbase verschlüsseln pspk --name alice ephemeral-encrypt-group base Super secret messagebase des Mitglieds entschlüsselt pspk --name bob ephemeral-decryp-group base base64Beachten Sie , dass alle Zwischengeheimnisse im PSPK -Speicher gespeichert wurden!
Sie können eine SMS oder Ausgabe mit PSPK und Ihrem privaten Schlüssel unterschreiben:
pspk --name bob sign Hello Alice !
osnfKYmhRNQx7/f3rcpA9jV0T6i/z/+XwyNFcSTGW7QKtJaBzRlbnf7Prg7Q5Hj90rfN2++CKY21IfPcIcAsAQ==
# now Alice can check signature of bob
pspk sign bob osnfKYmhRNQx7/f3rcpA9jV0T6i/z/+XwyNFcSTGW7QKtJaBzRlbnf7Prg7Q5Hj90rfN2++CKY21IfPcIcAsAQ== Hello Alice !
Signature osnfKYmhRNQx7/f3rcpA9jV0T6i/z/+XwyNFcSTGW7QKtJaBzRlbnf7Prg7Q5Hj90rfN2++CKY21IfPcIcAsAQ== is valid.oder Datei:
pspk --name bob sign --file ./bin/pspk
osnfKYmhRNQx7/f3rcpA9jV0T6i/z/+XwyNFcSTGW7QKtJaBzRlbnf7Prg7Q5Hj90rfN2++CKY21IfPcIcAsAQ==
# now Alice can check signature of bob
pspk sign bob osnfKYmhRNQx7/f3rcpA9jV0T6i/z/+XwyNFcSTGW7QKtJaBzRlbnf7Prg7Q5Hj90rfN2++CKY21IfPcIcAsAQ== --file ./bin/pspk
Signature osnfKYmhRNQx7/f3rcpA9jV0T6i/z/+XwyNFcSTGW7QKtJaBzRlbnf7Prg7Q5Hj90rfN2++CKY21IfPcIcAsAQ== is valid. PSPK Verwenden Sie $XDG_CONFIG_HOME zum Speichern von Konfiguration oder Standardwert $HOME/.config/pspk Verwenden Sie die Datei config.json zum Speichern von Konfiguration:
{"current_name":"name"}
$HOME/.local/share/pspk $XDG_DATA_HOME Verwenden