|  | .TH SECSTORE 1 | 
|  | .SH NAME | 
|  | aescbc, ipso, secstore \- secstore commands | 
|  | .SH SYNOPSIS | 
|  | .B secstore | 
|  | [ | 
|  | .B -s | 
|  | .I server | 
|  | ] | 
|  | [ | 
|  | .B -(g|G) | 
|  | .I getfile | 
|  | ] | 
|  | [ | 
|  | .B -p | 
|  | .I putfile | 
|  | ] | 
|  | [ | 
|  | .B -r | 
|  | .I rmfile | 
|  | ] | 
|  | [ | 
|  | .B -c | 
|  | ] | 
|  | [ | 
|  | .B -u | 
|  | .I user | 
|  | ] | 
|  | [ | 
|  | .B -v | 
|  | ] | 
|  | [ | 
|  | .B -i | 
|  | ] | 
|  | .PP | 
|  | .B aescbc | 
|  | -e | 
|  | .I <cleartext | 
|  | .I >ciphertext | 
|  | .br | 
|  | .B aescbc | 
|  | -d | 
|  | .I <ciphertext | 
|  | .I >cleartext | 
|  | .PP | 
|  | .B ipso | 
|  | [ | 
|  | .B -a -e -l -f | 
|  | ] [ | 
|  | .I file | 
|  | \&... | 
|  | ] | 
|  | .SH DESCRIPTION | 
|  | .PP | 
|  | .I Secstore | 
|  | authenticates to the server | 
|  | using a password and optionally a hardware token, | 
|  | then saves or retrieves a file. | 
|  | This is intended to be a credentials store (public/private keypairs, | 
|  | passwords, and other secrets) for a factotum. | 
|  | .PP | 
|  | Option | 
|  | .B -p | 
|  | stores a file on the secstore. | 
|  | .PP | 
|  | Option | 
|  | .B -g | 
|  | retrieves a file to the local directory; | 
|  | option | 
|  | .B -G | 
|  | writes it to standard output instead. | 
|  | Specifying | 
|  | .I getfile | 
|  | of . will send to standard output | 
|  | a list of remote files with dates, lengths and SHA1 hashes. | 
|  | .PP | 
|  | Option | 
|  | .B -r | 
|  | removes a file from the secstore. | 
|  | .PP | 
|  | Option | 
|  | .B -c | 
|  | prompts for a password change. | 
|  | .PP | 
|  | Option | 
|  | .B -v | 
|  | produces more verbose output, in particular providing a few | 
|  | bits of feedback to help the user detect mistyping. | 
|  | .PP | 
|  | Option | 
|  | .B -i | 
|  | says that the password should be read from standard input | 
|  | instead of from | 
|  | .BR /dev/tty . | 
|  | .PP | 
|  | Option | 
|  | .B -n | 
|  | says that the password should be read from NVRAM | 
|  | (see | 
|  | .IR authsrv (3)) | 
|  | instead of from | 
|  | .BR /dev/tty . | 
|  | .PP | 
|  | The server is | 
|  | .BR tcp!$auth!secstore , | 
|  | or the server specified by option | 
|  | .BR -s . | 
|  | .PP | 
|  | For example, to add a secret to the file read by | 
|  | .IR factotum (4), | 
|  | run | 
|  | .sp | 
|  | .EX | 
|  | % cd somewhere-private | 
|  | % auth/secstore -g factotum | 
|  | secstore password: | 
|  | % echo 'key proto=apop dom=x.com user=ehg !password=hi' >> factotum | 
|  | % auth/secstore -p factotum | 
|  | secstore password: | 
|  | % cat factotum | 9p write -l factotum/ctl | 
|  | .EE | 
|  | .PP | 
|  | and delete the window. | 
|  | The middle commands fetch the persistent copy of the secrets, | 
|  | append a new secret, | 
|  | and save the updated file back to secstore. | 
|  | The final command loads the new secret into the running factotum. | 
|  | .PP | 
|  | The | 
|  | .I ipso | 
|  | command packages this sequence into a convenient script to simplify editing of | 
|  | .I files | 
|  | stored on a secure store. | 
|  | It copies the named | 
|  | .I files | 
|  | into a private directory, | 
|  | plumbs them to the editor, | 
|  | and waits for a line on the console | 
|  | Once a line is typed, | 
|  | signifying that editing is complete, | 
|  | .I ipso | 
|  | prompts the user to confirm copying modifed or newly created files back to | 
|  | .I secstore. | 
|  | If no | 
|  | .I file | 
|  | is mentioned, | 
|  | .I ipso | 
|  | grabs all the user's files from | 
|  | .I secstore | 
|  | for editing. | 
|  | .PP | 
|  | By default, ipso will edit the | 
|  | .I secstore | 
|  | files and, if | 
|  | one of them is named | 
|  | .BR factotum , | 
|  | flush current keys from factotum and load | 
|  | the new ones from the file. | 
|  | If the | 
|  | .BR -e , | 
|  | .BR -f , | 
|  | or | 
|  | .BR -l | 
|  | options are given, | 
|  | .I ipso | 
|  | will just perform only the requested operations, i.e., | 
|  | edit, flush, and/or load. | 
|  | .PP | 
|  | The | 
|  | .B -a | 
|  | option of | 
|  | .I ipso | 
|  | provides a similar service for files encrypted by | 
|  | .I aescbc | 
|  | .RI ( q.v. ). | 
|  | With the | 
|  | .B -a | 
|  | option, the full rooted pathname of the | 
|  | .I file | 
|  | must be specified and all | 
|  | .I files | 
|  | must be encrypted with the same key. | 
|  | Also with | 
|  | .BR -a , | 
|  | newly created files are ignored. | 
|  | .PP | 
|  | .I Aescbc | 
|  | encrypts and decrypts using AES (Rijndael) in cipher | 
|  | block chaining (CBC) mode. | 
|  | .SH SOURCE | 
|  | .B \*9/bin/ipso | 
|  | .br | 
|  | .B \*9/src/cmd/auth/secstore | 
|  | .SH SEE ALSO | 
|  | .IR factotum (4), | 
|  | .IR secstored (1) | 
|  | .SH BUGS | 
|  | There is deliberately no backup of files on the secstore, so | 
|  | .B -r | 
|  | (or a disk crash) is irrevocable.  You are advised to store | 
|  | important secrets in a second location. | 
|  | .PP | 
|  | When using | 
|  | .IR ipso , | 
|  | secrets will appear as plain text in the editor window, | 
|  | so use the command in private. | 
|  | .PP | 
|  | Establishing a private directory in which to store the secret | 
|  | files is difficult on Unix. | 
|  | On most systems, | 
|  | .I ipso | 
|  | creates a mode 700 directory | 
|  | .BI /tmp/ipso. user | 
|  | and works there. | 
|  | On Linux systems, | 
|  | .I ipso | 
|  | looks for a | 
|  | .B tmpfs | 
|  | file system; if it exists, | 
|  | .I ipso | 
|  | creates the | 
|  | .BI ipso. user | 
|  | directory in its root | 
|  | instead of | 
|  | .BR /tmp . | 
|  | .PP | 
|  | .I Ipso | 
|  | should zero the secret files before removing them. |