Stockage spécifique pour partager les clés publiques de la paire ECDH par Curve25519.
Le service fournit une API HTTP pour enregistrer et lire une clé de 32 octets avec un nom lisible par l'homme (aka. Alias).
Ce service résout un problème pour la persistance de la clé publique de sauvegarde et d'envoi au destinataire via un canal de communication ouvert.
Vous devez utiliser ce modèle:
{
"name" : " Some Name " ,
"key" : " base64== "
}où:
name - String avec longueur plus que 1000 signeskey - Encodé à Base64 32 octets Clé public Enregistrer la clé publique:
curl -X POST " https://pspk.now.sh " -d ' {"name":"Some.Name","key":"E7+TL112lj1GmJRHf9jT5MZJDgYIhUbtBLc4/ZFMZ5c="} '
{ " access " :true, " msg " : " added " }Lire la clé publique:
curl -X POST " https://pspk.now.sh " -d ' {"name":"Some.Name"} '
{ " access " :true, " key " : " wTaZA5+QeZpby33W2T5uV8TweWaPEZn3clTe5xkmb2M= " }OBTENIR:
GET /?output=json-array&limit=500&last_key=&last_key=5c93d5b8149588f7c7638546 Réponse: [
{ "id" : " 5c952b5e149588f7c777c7b6 " , "name" : " x1 " , "key" : " wTaZA5+QeZpby33W2T5uV8TweWaPEZn3clTe5xkmb2M= " },
{ "id" : " 5c952b62149588f7c777ca52 " , "name" : " x2 " , "key" : " ApYM2UsdUxFas5AF16W605950ke2iXPd5sDhg287xnM= " }
]GET /?link=5d06a65da5cdb90006989577 Réponse: { "data" : " 123 " }GET /?name_key=alice Response [{"id":"5c9bd58b149588f7c71bce91","name":"alice","key":"E7+TL112lj1GmJRHf9jT5MZJDgYIhUbtBLc4/ZFMZ5c="}]
Obtenez la clé publique dans le code QR par nom GET /?qr_code=alice . La réponse contient des byes pour image/png .
Get By Regexp name.* GET /?name_regex=Some réponse
[{"id":"5c9bd58b149588f7c71bce91","name":"Some.Name","key":"E7+TL112lj1GmJRHf9jT5MZJDgYIhUbtBLc4/ZFMZ5c="},...]
POSTE:
POST / with Body {"method":"link","data":"base64=="} , réponse { "link" : " 5d06a65da5cdb90006989577 " }POST / avec le corps {"name":"alice","key":"base64=="} , réponse { "msg" : " added " }POST / With Body {"name":"alice"} , réponse { "msg" : " base64== " } pspk - outil de console qui utilise l'API sur PSPK et implémentez le chiffrement / décryptage pour un ou plusieurs destinataires.
$ 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
Will Generation Private and Public Keys et publier des pices publics à pspk.now.sh.
pspk --name < NAME_YOUR_KEY > publishEncpitera le message via votre clé privée et le nom de la clé publique de pspk.now.sh.
pspk --name < NAME_YOUR_KEY > encrypt < PUBLIC_PART_NAME > < SOME_MESSAGE_WITH_SPACES >Ou cryptage avec une clé éphémrale
pspk ephemeral-encrypt < PUBLIC_PART_NAME > < SOME_MESSAGE_WITH_SPACES > Les commandes Crypt ont également un indicateur booléen --link link pour télécharger des données chiffrées sur serveur. Et lien de génération de 24 heures pour les données d'accès.
pspk ephemeral-encrypt --link < PUBLIC_PART_NAME > < SOME_MESSAGE_WITH_SAPCES >Sortir:
base64ofencpryteddata==
https://pspk.now.sh/ ? link=5d07c5264f818b00069f5ddaObtenez des données par ce lien renvoie JSON:
{ "data" : " MmeSOsti98jaancR+qsbNtpL6nwPtov2p9U5diP7ahbSAhkwsYbgYMRAHMbO/gry " }où les données contient des données cryptées.
Le message de décription via votre clé privée et le nom de la clé publique de pspk.now.sh.
pspk --name < NAME_YOUR_KEY > decrypt < PUBLIC_PART_NAME > < SOME_BASE64_WITH_SPACES >Ou décription avec la clé éphémrale
pspk --name < NAME_YOUR_KEY > ephemeral-decrypt < SOME_MESSAGE_WITH_SPACES > Les commandes de décryptation ont également un indicateur de chaîne --link <URL> pour télécharger des données ecnryptées à partir du serveur.
Exemple:
pspk --name < NAME_YOUR_KEY > ephemeral-decrypt --link https://pspk.now.sh/ ? link=5d07c5264f818b00069f5ddaPour le cryptage / décryptage, les besoins de génération de secret partagé en groupe. Utilisez cet algorithme (cliques) IV.A
base de groupe et publiez sur pspk.now.sh pspk --name base group
base de groupe. pspk --name alice start-group base
pspk --name bob start-group base alice
pspk --name carol start-group base bob aliceLes derniers membres finissent de générer des secrets intermédiaires.
pspk --name daron finish-group base carol bob aliceLes membres peuvent commencer à générer des clés secrètes partagées via des clés intermédiaires.
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 pspk --name alice ephemeral-encrypt-group base Super secret messagebase du membre pspk --name bob ephemeral-decryp-group base base64Remarque Tous les secrets intermédiaires seraient enregistrés dans le stockage PSPK!
Vous pouvez signer un message texte ou une sortie avec PSPK et votre clé privée:
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.ou fichier:
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 utilisez $XDG_CONFIG_HOME pour enregistrer la configuration ou la valeur par défaut $HOME/.config/pspk utilisez le fichier config.json pour enregistrer la configuration:
{"current_name":"name"}
Également pspk utilisez $XDG_DATA_HOME pour enregistrer les données de l'application RO valeur par défaut $HOME/.local/share/pspk