summaryrefslogtreecommitdiff
path: root/Documentation/CLI_ABI.md
blob: 6930e83449541ac6560b0d4ed9ad071d2bd661a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Stable CLI ABI
==============

If you want to call gocryptfs from your script or app, this is the
stable ABI.

General
-------

1. A password is piped into gocryptfs with an optional terminating
   newline. Any unexpected data after the final newline will
   cause gocryptfs to abort.
2. Always pass "--" after the options. This prevents a CIPERDIR that
   starts with a dash ("-") to wreak havoc.
3. Use "-q" to get rid of all informational messages. Only error
   messages (if any) will be printed to stderr (capture it!).
4. Check the exit code of gocryptfs. 0 is success, anything else is an
   error and details about that error will have been printed to stderr.

Initialize Filesystem
---------------------

### Bash example

    $ cat mypassword.txt | gocryptfs -init -q -- CIPHERDIR

Content of "mypassword.txt":

    mypassword1234

### What you have to pipe to gocryptfs

1. Password
2. Optional newline

### Notes

1. The CIPHERDIR directory must exist and be empty

Mount
-----

### Bash example

    $ cat mypassword.txt | gocryptfs -q -- CIPHERDIR MOUNTPOINT

### What you have to pipe to gocryptfs

Same as for "Initialize Filesystem".

### Notes

1. The MOUNTPOINT directory must exist and be empty.

Change Password
---------------

### Bash example

    $ cat change.txt | gocryptfs -passwd -q -- CIPHERDIR

Content of "change.txt":

    mypassword1234
    newpassword9876

### What you have to pipe to gocryptfs

1. Old password
2. Newline
3. New password
4. Optional newline