Curve25519의 쌍 ECDH의 공개 키 공유를위한 특정 스토리지.
서비스는 저장을위한 HTTP API를 제공하고 사람이 읽을 수있는 이름 (일명 별명)이있는 32 바이드 키를 읽습니다.
이 서비스는 지속적인 저장 공개 키를위한 문제를 해결하고 개방형 커뮤니케이션 채널을 통해 수신자에게 보냅니다.
이 모델을 사용해야합니다.
{
"name" : " Some Name " ,
"key" : " base64== "
}어디:
name - 길이가 1000 개의 징후를 가진 문자열key - Base64 32 -Bytes 공개 키로 인코딩 공개 키 저장 :
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="}]
이름 GET /?qr_code=alice QR 코드에서 공개 키를 가져옵니다. 응답에는 image/png 에 대한 BYE가 포함됩니다.
regexp name.* GET /?name_regex=Some 응답
[{"id":"5c9bd58b149588f7c71bce91","name":"Some.Name","key":"E7+TL112lj1GmJRHf9jT5MZJDgYIhUbtBLc4/ZFMZ5c="},...]
우편:
POST / with body {"method":"link","data":"base64=="} , 응답 { "link" : " 5d06a65da5cdb90006989577 " }POST / With Body {"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
개인 및 공개 키를 생성하고 PSPK.NOW.SH에 공개 파이스를 게시합니다.
pspk --name < NAME_YOUR_KEY > publishpspk.now.sh에서 개인 키 및 공개 키 이름을 통해 암호화 메시지가 표시됩니다.
pspk --name < NAME_YOUR_KEY > encrypt < PUBLIC_PART_NAME > < SOME_MESSAGE_WITH_SPACES >또는 ephemral 키와 암호화
pspk ephemeral-encrypt < PUBLIC_PART_NAME > < SOME_MESSAGE_WITH_SPACES > 또한 암호화 명령에는 암호화 된 데이터를 서버에 업로드하기위한 --link 부울 플래그가 있습니다. 및 액세스 데이터에 대한 생성 링크 24 시간.
pspk ephemeral-encrypt --link < PUBLIC_PART_NAME > < SOME_MESSAGE_WITH_SAPCES >산출:
base64ofencpryteddata==
https://pspk.now.sh/ ? link=5d07c5264f818b00069f5dda이 링크로 데이터 가져 오기 return json :
{ "data" : " MmeSOsti98jaancR+qsbNtpL6nwPtov2p9U5diP7ahbSAhkwsYbgYMRAHMbO/gry " }데이터에 암호화 된 데이터가 포함 된 경우.
pspk.now.sh에서 개인 키 및 공개 키 이름을 통해 메시지를 낭비합니다.
pspk --name < NAME_YOUR_KEY > decrypt < PUBLIC_PART_NAME > < SOME_BASE64_WITH_SPACES >또는 ephemral 키로 찢어짐
pspk --name < NAME_YOUR_KEY > ephemeral-decrypt < SOME_MESSAGE_WITH_SPACES > 또한 해독 명령에는 서버에서 ecnrypted 데이터를 다운로드하기위한 --link <URL> 문자열 플래그가 있습니다.
예:
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는 appication 데이터 저장에 $XDG_DATA_HOME 사용합니다. RO 기본값 $HOME/.local/share/pspk