ที่เก็บข้อมูลเฉพาะสำหรับการแชร์คีย์สาธารณะของคู่ ECDH โดย Curve25519
บริการให้ HTTP API สำหรับบันทึกและอ่านคีย์ 32-bytes ที่มีชื่อที่มนุษย์อ่านได้ (AKA. นามแฝง)
บริการนี้แก้ปัญหาสำหรับคีย์สาธารณะที่ประหยัดอย่างต่อเนื่องและส่งไปยังผู้รับผ่านช่องทางการสื่อสารแบบเปิด
คุณควรใช้รุ่นนี้:
{
"name" : " Some Name " ,
"key" : " base64== "
}ที่ไหน:
name - สตริงที่มีความยาวมากกว่านั้น 1,000 สัญญาณkey - เข้ารหัสไปยัง Base64 32 -bytes Public Key บันทึกกุญแจสาธารณะ:
curl -X POST " https://pspk.now.sh " -d ' {"name":"Some.Name","key":"E7+TL112lj1GmJRHf9jT5MZJDgYIhUbtBLc4/ZFMZ5c="} '
{ " access " :true, " msg " : " added " }อ่านคีย์สาธารณะ:
curl -X POST " https://pspk.now.sh " -d ' {"name":"Some.Name"} '
{ " access " :true, " key " : " wTaZA5+QeZpby33W2T5uV8TweWaPEZn3clTe5xkmb2M= " }รับ:
GET /?output=json-array&limit=500&last_key=&last_key=5c93d5b8149588f7c7638546 การตอบสนอง: [
{ "id" : " 5c952b5e149588f7c777c7b6 " , "name" : " x1 " , "key" : " wTaZA5+QeZpby33W2T5uV8TweWaPEZn3clTe5xkmb2M= " },
{ "id" : " 5c952b62149588f7c777ca52 " , "name" : " x2 " , "key" : " ApYM2UsdUxFas5AF16W605950ke2iXPd5sDhg287xnM= " }
]GET /?link=5d06a65da5cdb90006989577 การตอบสนอง: { "data" : " 123 " }GET /?name_key=alice [{"id":"5c9bd58b149588f7c71bce91","name":"alice","key":"E7+TL112lj1GmJRHf9jT5MZJDgYIhUbtBLc4/ZFMZ5c="}]
รับคีย์สาธารณะในรหัส QR ตามชื่อ GET /?qr_code=alice การตอบสนองจะมี byes สำหรับ image/png
รับจาก name.* GET /?name_regex=Some
[{"id":"5c9bd58b149588f7c71bce91","name":"Some.Name","key":"E7+TL112lj1GmJRHf9jT5MZJDgYIhUbtBLc4/ZFMZ5c="},...]
โพสต์:
POST / ด้วยร่างกาย {"method":"link","data":"base64=="} , การตอบสนอง { "link" : " 5d06a65da5cdb90006989577 " }POST / ด้วยร่างกาย {"name":"alice","key":"base64=="} , การตอบสนอง { "msg" : " added " }POST / with body {"name":"alice"} , การตอบสนอง { "msg" : " base64== " } pspk - เครื่องมือคอนโซลที่ใช้ API ไปยัง PSPK และใช้การเข้ารหัส/ถอดรหัสสำหรับผู้รับหนึ่งหรือหลายคน
$ 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
จะสร้างคีย์ส่วนตัวและสาธารณะและเผยแพร่ pice สาธารณะไปยัง pspk.now.sh.
pspk --name < NAME_YOUR_KEY > publishจะเข้ารหัสข้อความผ่านคีย์ส่วนตัวและชื่อคีย์สาธารณะของคุณจาก pspk.now.sh
pspk --name < NAME_YOUR_KEY > encrypt < PUBLIC_PART_NAME > < SOME_MESSAGE_WITH_SPACES >หรือการเข้ารหัสด้วยคีย์แมลงปาง
pspk ephemeral-encrypt < PUBLIC_PART_NAME > < SOME_MESSAGE_WITH_SPACES > นอกจากนี้ยังมีคำสั่งที่เข้ารหัสมีธงบูลีน --link สำหรับการอัปโหลดข้อมูลที่เข้ารหัสไปยังเซิร์ฟเวอร์ และ Generation Link 24 ชั่วโมงสำหรับข้อมูลการเข้าถึง
pspk ephemeral-encrypt --link < PUBLIC_PART_NAME > < SOME_MESSAGE_WITH_SAPCES >เอาท์พุท:
base64ofencpryteddata==
https://pspk.now.sh/ ? link=5d07c5264f818b00069f5ddaรับข้อมูลโดยลิงก์นี้ส่งคืน JSON:
{ "data" : " MmeSOsti98jaancR+qsbNtpL6nwPtov2p9U5diP7ahbSAhkwsYbgYMRAHMbO/gry " }ที่ข้อมูลมีข้อมูลที่เข้ารหัส
จะลดลงข้อความผ่านคีย์ส่วนตัวและชื่อคีย์สาธารณะของคุณจาก pspk.now.sh
pspk --name < NAME_YOUR_KEY > decrypt < PUBLIC_PART_NAME > < SOME_BASE64_WITH_SPACES >หรือ decription ด้วยคีย์แมลงปาง
pspk --name < NAME_YOUR_KEY > ephemeral-decrypt < SOME_MESSAGE_WITH_SPACES > นอกจากนี้ยังมีคำสั่ง DECRYPT มีการเชื่อมโยงสตริง --link <URL> สำหรับการดาวน์โหลดข้อมูล ecnrypted จากเซิร์ฟเวอร์
ตัวอย่าง:
pspk --name < NAME_YOUR_KEY > ephemeral-decrypt --link https://pspk.now.sh/ ? link=5d07c5264f818b00069f5ddaสำหรับการเข้ารหัส/การถอดรหัสต้องสร้างความลับที่ใช้ร่วมกันในกลุ่ม ใช้อัลกอริทึมนี้ (cliques) IV.A
base กลุ่มและเผยแพร่ไปยัง pspk.now.sh pspk --name base group
base กลุ่ม pspk --name alice start-group base
pspk --name bob start-group base alice
pspk --name carol start-group base bob aliceสมาชิกคนสุดท้ายจะสร้างความลับระดับกลางให้เสร็จ
pspk --name daron finish-group base carol bob aliceสมาชิกสามารถเริ่มสร้างคีย์ลับที่ใช้ร่วมกันผ่านปุ่มกลาง
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 ของสมาชิก pspk --name bob ephemeral-decryp-group base base64หมายเหตุ ความลับระดับกลางทั้งหมดจะบันทึกไว้ในที่เก็บ PSPK!
คุณสามารถลงชื่อข้อความหรือเอาต์พุตด้วย PSPK และคีย์ส่วนตัวของคุณ:
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.หรือไฟล์:
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 ใช้ $XDG_CONFIG_HOME สำหรับการบันทึกการกำหนดค่าหรือค่าเริ่มต้น $HOME/.config/pspk ใช้ไฟล์ config.json สำหรับการบันทึกการกำหนดค่า:
{"current_name":"name"}
นอกจากนี้ PSPK ใช้ $XDG_DATA_HOME สำหรับการบันทึกข้อมูล appication RO ค่าเริ่มต้น $HOME/.local/share/pspk