| .TH SECSTORE 1 |
| .SH NAME |
| aescbc, secstore, ipso \- 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 -s |
| ] [ |
| .I file |
| \&... |
| ] |
| .PP |
| .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/cons . |
| .PP |
| Option |
| .B -n |
| says that the password should be read from NVRAM |
| instead of from |
| .BR /dev/cons . |
| This option is unsupported. |
| .PP |
| The server is |
| .BR tcp!$auth!5356 , |
| or the server specified by option |
| .BR -s . |
| .PP |
| For example, to add a secret to the file read by |
| .IR factotum (4) |
| at startup, open a new window, type |
| .sp |
| .EX |
| % ramfs -p; cd /tmp |
| % auth/secstore -g factotum |
| secstore password: |
| % echo 'key proto=apop dom=x.com user=ehg !password=hi' >> factotum |
| % auth/secstore -p factotum |
| secstore password: |
| % read -m factotum > /mnt/factotum/ctl |
| .EE |
| .PP |
| and delete the window. |
| The first line creates an ephemeral memory-resident workspace, |
| invisible to others and automatically removed when the window is deleted. |
| The next three 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 local |
| .\" .IR ramfs (4) |
| .\" and invokes |
| .\" .IR acme (1) |
| .\" on them. When the editor exits, |
| .\" .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 your current keys from factotum and load |
| .\" the new ones from the file. |
| .\" If you supply any of the |
| .\" .BR -e , |
| .\" .BR -f , |
| .\" or |
| .\" .BR -l |
| .\" options, |
| .\" .I ipso |
| .\" will just perform the operations you requested, i.e., |
| .\" edit, flush, and/or load. |
| .\" .PP |
| .\" The |
| .\" .B -s |
| .\" option of |
| .\" .I ipso |
| .\" invokes |
| .\" .IR sam (1) |
| .\" as the editor insted of |
| .\" .BR acme ; |
| .\" the |
| .\" .B -a |
| .\" option 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/src/cmd/secstore |
| .SH SEE ALSO |
| .IR factotum (4), |
| Plan 9's \fIsecstore\fR(8) |
| .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. |