aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Unterwurzacher2015-12-20 18:17:06 +0100
committerJakob Unterwurzacher2015-12-20 18:17:06 +0100
commit0ebc0b7412d811b0865080573555100649a068fc (patch)
treeaf0e732abf52e34ec65e8f234a6b93ea92b1b4ca
parentf419d49d65fc638fd15b603364b2e8e92609da91 (diff)
Add content, customize theme
-rw-r--r--README.md3
-rw-r--r--docs/img/file-content-encryption.svg516
-rw-r--r--docs/img/file-name-encryption.svg400
-rw-r--r--docs/img/folders-side-by-side.pngbin0 -> 143506 bytes
-rw-r--r--docs/img/master-key.svg434
-rw-r--r--docs/index.md32
-rw-r--r--docs/manpage.md101
-rw-r--r--docs/quickstart.md41
-rw-r--r--docs/security.md51
-rw-r--r--mkdocs.yml7
-rw-r--r--xreadthedocs/base.html24
-rw-r--r--xreadthedocs/css/theme_extra.css55
-rw-r--r--xreadthedocs/footer.html5
-rw-r--r--xreadthedocs/toc.html2
-rw-r--r--xreadthedocs/versions.html10
15 files changed, 1658 insertions, 23 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..5646cf4
--- /dev/null
+++ b/README.md
@@ -0,0 +1,3 @@
+This repostitory contains the gocryptfs website
+
+https://nuetzlich.net/gocryptfs
diff --git a/docs/img/file-content-encryption.svg b/docs/img/file-content-encryption.svg
new file mode 100644
index 0000000..38a6f6b
--- /dev/null
+++ b/docs/img/file-content-encryption.svg
@@ -0,0 +1,516 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="183.14586mm"
+ height="74.500015mm"
+ viewBox="0 0 648.94201 263.97642"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="file-content-encryption.svg">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker5544"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path5546"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker9033"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path9035"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker8949"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path8951" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker8631"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path8633"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker8559"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path8561" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker8493"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path8495"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#aa00d4;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker8433"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path8435" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4"
+ inkscape:cx="209.93662"
+ inkscape:cy="128.77455"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ showguides="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="2"
+ fit-margin-left="2"
+ fit-margin-right="2"
+ fit-margin-bottom="2"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-nodes="false"
+ inkscape:snap-bbox-midpoints="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4153"
+ dotted="true"
+ units="mm"
+ spacingx="3.543307"
+ spacingy="3.5433069"
+ originx="-58.710531"
+ originy="-676.77163" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-58.710528,-111.61407)">
+ <rect
+ style="opacity:1;fill:#b0b0b0;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4273-2"
+ width="202.04813"
+ height="229.68066"
+ x="498.51782"
+ y="138.82323" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4267-1"
+ width="180.77991"
+ height="21.25984"
+ x="509.90225"
+ y="151.34044" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4269-7"
+ width="180.77988"
+ height="106.29918"
+ x="509.15195"
+ y="230.31494" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="562.84875"
+ y="132.75323"
+ id="text4155-7"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.99980293)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-2"
+ x="562.84875"
+ y="132.75323"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">myfile.txt</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="576.00201"
+ y="166.35579"
+ id="text4155-88-3"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.9998029)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-7"
+ x="576.00201"
+ y="166.35579"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">File ID</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="567.89215"
+ y="222.81044"
+ id="text4155-88-4-5"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.9998029)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-8-2"
+ x="567.89215"
+ y="222.81044"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">Block N</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="590.19763"
+ y="246.77895"
+ id="text4155-88-3-5"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.99980293)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-7-3"
+ x="590.19763"
+ y="246.77895"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">IV</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="530.06659"
+ y="306.5853"
+ id="text4155-88-3-5-2"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.99980293)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-7-3-1"
+ x="530.06659"
+ y="306.5853"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">authentication tag</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="552.05615"
+ y="287.28772"
+ id="text4155-88-3-5-5"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.99980293)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-7-3-11"
+ x="552.05615"
+ y="287.28772"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">Ciphertext +</tspan><tspan
+ sodipodi:role="line"
+ x="552.05615"
+ y="306.04141"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px"
+ id="tspan10041" /></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:60px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:45.09999847px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="216.14174"
+ y="272.83463"
+ id="text8326"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan8328"
+ x="216.14174"
+ y="272.83463" /></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.00295734px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-199.48254"
+ y="594.10767"
+ id="text8334"
+ sodipodi:linespacing="125%"
+ transform="matrix(0,-0.9998029,1.0001971,0,0,0)"><tspan
+ sodipodi:role="line"
+ id="tspan8336"
+ x="-199.48254"
+ y="594.10767">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.00295734px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-358.76984"
+ y="594.10767"
+ id="text8334-6"
+ sodipodi:linespacing="125%"
+ transform="matrix(0,-0.9998029,1.0001971,0,0,0)"><tspan
+ sodipodi:role="line"
+ id="tspan8336-8"
+ x="-358.76984"
+ y="594.10767">...</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect8358"
+ width="180.77988"
+ height="85.039352"
+ x="509.15195"
+ y="251.57477" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="119.28683"
+ y="301.50504"
+ id="text4155-88-3-5-5-3"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.9998029)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-7-3-11-3"
+ x="119.28683"
+ y="301.50504"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">Plaintext</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect8358-5"
+ width="180.77986"
+ height="63.77951"
+ x="66.297142"
+ y="265.78934" />
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3336-9-4-2-0-1"
+ width="127.60939"
+ height="21.259842"
+ x="296.05573"
+ y="273.9592"
+ ry="10.629921" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="306.63794"
+ y="289.41443"
+ id="text4155-6-5-7-9-1"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.9998029)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-3-0-7-6-8"
+ x="306.63794"
+ y="289.41443"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">AES-256-GCM</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="101.36021"
+ y="245.00774"
+ id="text4155-8-6"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.9998029)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-1-5"
+ x="101.36021"
+ y="245.00774"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">/dev/urandom</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4271-5"
+ width="180.77991"
+ height="21.25984"
+ x="67.576042"
+ y="229.28419" />
+ <path
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker8433)"
+ d="m 253.93328,240.94489 249.90165,0"
+ id="path8425"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;fill:#aa00d4;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker8493)"
+ d="m 333.68912,240.94489 0,26.57479"
+ id="path8485"
+ inkscape:connector-curvature="0" />
+ <ellipse
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path8737"
+ cx="374.27438"
+ cy="240.94487"
+ rx="5.3170562"
+ ry="5.3149605" />
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker8559)"
+ d="m 503.70354,161.22048 -128.20852,0 0,106.29922"
+ id="path8551"
+ inkscape:connector-curvature="0" />
+ <ellipse
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path8737-5"
+ cx="386.95145"
+ cy="240.94487"
+ rx="5.3170557"
+ ry="5.31496" />
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker8631)"
+ d="m 562.32255,219.68505 -175.46287,0 0,47.83465"
+ id="path8623"
+ inkscape:connector-curvature="0" />
+ <ellipse
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path8737-56"
+ cx="333.64691"
+ cy="241.05405"
+ rx="3.1063631"
+ ry="3.1051385" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="423.86295"
+ y="215.17522"
+ id="text4155-88-4-5-8"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.9998029)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-8-2-7"
+ x="423.86295"
+ y="215.17522"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px;fill:#000000;fill-opacity:1;">N</tspan></text>
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker8949)"
+ d="m 250.75992,283.38022 40.39275,0.0845"
+ id="path8941"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker9033)"
+ d="m 429.39614,283.4646 74.43879,0"
+ id="path9025"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.10359192px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.72786713px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="319.01462"
+ y="354.56906"
+ id="text4155-8-2"
+ sodipodi:linespacing="125%"
+ transform="scale(0.99921742,1.0007832)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-1-2"
+ x="319.01462"
+ y="354.56906"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.01726532px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">Master key</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4271-4"
+ width="106.3383"
+ height="21.300985"
+ x="306.26349"
+ y="339.90607" />
+ <path
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker5544)"
+ d="m 361.41732,336.31276 0,-35.99645"
+ id="path5536"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 375.14415,313.30988 c -2.19348,0 -3.97122,1.77773 -3.97122,3.97121 0,0.30404 0.0341,0.59878 0.0993,0.88266 l -6.07006,6.06851 0,0.9928 0.9928,0.9928 1.98561,0 0.99281,-0.9928 0,-0.9928 0.9928,0 0,-0.9928 0.9928,0 0,-0.9928 1.9856,0 1.09829,-1.09829 c 0.29008,0.0666 0.59102,0.10233 0.90128,0.10233 2.19347,0 3.9712,-1.77773 3.9712,-3.9712 0,-2.19348 -1.77928,-3.96967 -3.9712,-3.96967 z m -3.98518,6.95116 -4.96401,4.96402 0,-0.9928 4.96401,-4.96402 0,0.9928 z m 4.96401,-2.9784 c -0.54759,0 -0.9928,-0.44521 -0.9928,-0.9928 0,-0.54759 0.44521,-0.9928 0.9928,-0.9928 0.5476,0 0.99281,0.44521 0.99281,0.9928 0,0.54759 -0.44521,0.9928 -0.99281,0.9928 z"
+ id="path7910"
+ style="fill:#ffcc00;fill-opacity:1;stroke:none;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#aa00d4;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="313.90033"
+ y="260.28745"
+ id="text4155-88-3-5-0"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.99980293)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-7-3-8"
+ x="313.90033"
+ y="260.28745"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px;fill:#aa00d4">IV</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#37abc8;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="393.54901"
+ y="259.38974"
+ id="text4155-88-3-5-0-3"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.99980293)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-7-3-8-5"
+ x="393.54901"
+ y="259.38974"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px;fill:#37abc8">AAD</tspan></text>
+ </g>
+</svg>
diff --git a/docs/img/file-name-encryption.svg b/docs/img/file-name-encryption.svg
new file mode 100644
index 0000000..45222e2
--- /dev/null
+++ b/docs/img/file-name-encryption.svg
@@ -0,0 +1,400 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="182.44499mm"
+ height="29.394854mm"
+ viewBox="0 0 646.45862 104.15498"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="file-name-encryption.svg">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker14911"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path14913"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker9315"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path9317" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker8949"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path8951" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker8559"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path8561" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path4311"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend-9"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4311-4"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend-6"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4311-6"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker8949-8"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path8951-2" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.8"
+ inkscape:cx="290.22759"
+ inkscape:cy="52.741737"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ showguides="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="2"
+ fit-margin-left="2"
+ fit-margin-right="2"
+ fit-margin-bottom="2"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-nodes="false"
+ inkscape:snap-bbox-midpoints="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4153"
+ dotted="true"
+ units="mm"
+ spacingx="3.543307"
+ spacingy="3.5433069"
+ originx="-116.36615"
+ originy="-722.62329" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-116.36614,-225.58383)">
+ <rect
+ style="opacity:1;fill:#b0b0b0;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4273-2"
+ width="202.06071"
+ height="70.915802"
+ x="553.67743"
+ y="251.7364" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4267-1"
+ width="180.79115"
+ height="21.25984"
+ x="565.06256"
+ y="260.98331" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.02054596px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66544342px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="615.98376"
+ y="244.4257"
+ id="text4155-7"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-2"
+ x="615.98376"
+ y="244.4257"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00342369px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">Directory X</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.02054596px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66544342px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="603.37323"
+ y="275.30154"
+ id="text4155-88-3"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-7"
+ x="603.37323"
+ y="275.30154"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00342369px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">gocryptfs.diriv</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.02054596px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66544342px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="262.2395"
+ y="244.6987"
+ id="text8326"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0002283,0.99977178)"><tspan
+ sodipodi:role="line"
+ id="tspan8328"
+ x="262.2395"
+ y="244.6987" /></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3336-9-4-2-0-1"
+ width="127.61733"
+ height="21.259842"
+ x="303.21915"
+ y="293.23734"
+ ry="10.629921" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.02054596px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66544342px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="316.79153"
+ y="309.39807"
+ id="text4155-6-5-7-9-1"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0002283,0.99977177)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-3-0-7-6-8"
+ x="316.79153"
+ y="309.39807"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00342369px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">AES-256-EME</tspan></text>
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker8559)"
+ d="m 558.97059,270.16733 -169.78791,0.0896 0,17.75633"
+ id="path8551"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker8949)"
+ d="m 257.92054,303.7971 40.39527,0.0845"
+ id="path8941"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4267-1-5"
+ width="127.61729"
+ height="21.259859"
+ x="123.95276"
+ y="293.23734" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.02054596px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66544342px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="146.35033"
+ y="309.52994"
+ id="text4155-88-3-1"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0002283,0.99977177)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-7-3"
+ x="146.35033"
+ y="309.52994"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00342369px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">&quot;letter.doc&quot;</tspan></text>
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99999982;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker8949-8)"
+ d="m 435.14323,303.81321 19.07004,0.0844"
+ id="path8941-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4267-1-0"
+ width="180.79115"
+ height="21.25984"
+ x="565.17651"
+ y="293.23734" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.02054596px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66544342px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="573.47998"
+ y="308.07574"
+ id="text4155-88-3-0"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-7-0"
+ x="573.47998"
+ y="308.07574"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00342369px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">lrpyui0m-ypX4u0PNJ...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.10359192px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.72786713px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="304.04675"
+ y="247.91684"
+ id="text4155-8-2"
+ sodipodi:linespacing="125%"
+ transform="scale(0.99921742,1.0007832)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-1-2"
+ x="304.04675"
+ y="247.91684"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.01726532px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">Master key</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4271-4"
+ width="106.3383"
+ height="21.300985"
+ x="291.30774"
+ y="233.17044" />
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker9315)"
+ d="m 340.82535,258.96369 0,29.21511"
+ id="path4825"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 332.00759,267.10127 c -2.19348,0 -3.97122,1.77773 -3.97122,3.97121 0,0.30404 0.0341,0.59878 0.0993,0.88266 l -6.07006,6.06851 0,0.9928 0.9928,0.9928 1.98561,0 0.99281,-0.9928 0,-0.9928 0.9928,0 0,-0.9928 0.9928,0 0,-0.9928 1.9856,0 1.09829,-1.09829 c 0.29008,0.0666 0.59102,0.10233 0.90128,0.10233 2.19347,0 3.9712,-1.77773 3.9712,-3.9712 0,-2.19348 -1.77928,-3.96967 -3.9712,-3.96967 z m -3.98518,6.95116 -4.96401,4.96402 0,-0.9928 4.96401,-4.96402 0,0.9928 z m 4.96401,-2.9784 c -0.54759,0 -0.9928,-0.44521 -0.9928,-0.9928 0,-0.54759 0.44521,-0.9928 0.9928,-0.9928 0.5476,0 0.99281,0.44521 0.99281,0.9928 0,0.54759 -0.44521,0.9928 -0.99281,0.9928 z"
+ id="path7910"
+ style="fill:#ffcc00;fill-opacity:1;stroke:none;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#aa00d4;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="456.66174"
+ y="266.66168"
+ id="text4155-88-3-5-0"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.99980293)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-7-3-8"
+ x="456.66174"
+ y="266.66168"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px;fill:#aa00d4">IV</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3336-9-4-2-0-1-0"
+ width="74.836861"
+ height="21.259842"
+ x="459.0206"
+ y="293.23734"
+ ry="10.629921" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.02054596px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66544342px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="468.30588"
+ y="309.39807"
+ id="text4155-6-5-7-9-1-8"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-3-0-7-6-8-2"
+ x="468.30588"
+ y="309.39807"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00342369px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">Base64</tspan></text>
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99999982;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker14911)"
+ d="m 537.89913,303.81321 19.07004,0.0844"
+ id="path8941-5-6"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/docs/img/folders-side-by-side.png b/docs/img/folders-side-by-side.png
new file mode 100644
index 0000000..92119f8
--- /dev/null
+++ b/docs/img/folders-side-by-side.png
Binary files differ
diff --git a/docs/img/master-key.svg b/docs/img/master-key.svg
new file mode 100644
index 0000000..bfc404a
--- /dev/null
+++ b/docs/img/master-key.svg
@@ -0,0 +1,434 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="158.81688mm"
+ height="62.826447mm"
+ viewBox="0 0 562.73697 222.61338"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="master-key.svg">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker13890"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path13892" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker13078"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path13080"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker12104"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path12106"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker11348"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path11350" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path4311"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend-9"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4311-4"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend-6"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4311-6"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.979899"
+ inkscape:cx="273.79956"
+ inkscape:cy="88.979971"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ showguides="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="2"
+ fit-margin-left="2"
+ fit-margin-right="2"
+ fit-margin-bottom="2">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4153"
+ dotted="true"
+ units="mm"
+ spacingx="3.543307"
+ spacingy="3.543307"
+ originx="-16.196071"
+ originy="-900.13387" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-16.196072,70.385088)">
+ <rect
+ style="opacity:1;fill:#b0b0b0;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4273"
+ width="202.04276"
+ height="144.27431"
+ x="23.745562"
+ y="0.86738396" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4269"
+ width="180.77509"
+ height="21.300983"
+ x="34.379395"
+ y="14.30587" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.10359192px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.72786713px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="70.482063"
+ y="-8.3704147"
+ id="text4155"
+ sodipodi:linespacing="125%"
+ transform="scale(0.99921742,1.0007832)"><tspan
+ sodipodi:role="line"
+ id="tspan4157"
+ x="70.482063"
+ y="-8.3704147"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.01726532px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">gocryptfs.conf</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.10359192px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.72786713px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="69.708466"
+ y="-47.437698"
+ id="text4155-8"
+ sodipodi:linespacing="125%"
+ transform="scale(0.99921742,1.0007832)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-1"
+ x="69.708466"
+ y="-47.437698"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.01726532px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">User password</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.10359192px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.72786713px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="54.610546"
+ y="29.583706"
+ id="text4155-88-4"
+ sodipodi:linespacing="125%"
+ transform="scale(0.99921742,1.0007832)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-8"
+ x="54.610546"
+ y="29.583706"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.01726532px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">Scrypt parameters</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4271"
+ width="201.96851"
+ height="21.259884"
+ x="23.782686"
+ y="-62.798473" />
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3336-9-4-2"
+ width="81.82563"
+ height="23.164824"
+ x="265.05551"
+ y="-62.515182"
+ ry="11.582412" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.10359192px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.72786713px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="282.32047"
+ y="-47.050331"
+ id="text4155-6-5-7"
+ sodipodi:linespacing="125%"
+ transform="scale(0.99921742,1.0007832)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-3-0-7"
+ x="282.32047"
+ y="-47.050331"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.01726532px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">Scrypt</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3336-9-4-2-0"
+ width="127.60599"
+ height="21.300985"
+ x="291.36865"
+ y="99.314758"
+ ry="10.650493" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.10359192px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.72786713px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="302.24756"
+ y="114.65296"
+ id="text4155-6-5-7-9"
+ sodipodi:linespacing="125%"
+ transform="scale(0.99921742,1.0007832)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-3-0-7-6"
+ x="302.24756"
+ y="114.65296"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.01726532px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">AES-256-GCM</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.10359192px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.72786713px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="477.88318"
+ y="115.52155"
+ id="text4155-8-2"
+ sodipodi:linespacing="125%"
+ transform="scale(0.99921742,1.0007832)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-1-2"
+ x="477.88318"
+ y="115.52155"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.01726532px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">Master key</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4271-4"
+ width="106.3383"
+ height="21.300985"
+ x="465.00812"
+ y="100.67143" />
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow1Mend-6)"
+ d="m 423.93541,110.05995 33.89144,-0.0155"
+ id="path4296-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 355.03935,33.380214 c -2.19348,0 -3.97122,1.77773 -3.97122,3.97121 0,0.30404 0.0341,0.59878 0.0993,0.88266 l -6.07006,6.06851 0,0.9928 0.9928,0.9928 1.98561,0 0.99281,-0.9928 0,-0.9928 0.9928,0 0,-0.9928 0.9928,0 0,-0.9928 1.9856,0 1.09829,-1.09829 c 0.29008,0.0666 0.59102,0.10233 0.90128,0.10233 2.19347,0 3.9712,-1.77773 3.9712,-3.9712 0,-2.19348 -1.77928,-3.96967 -3.9712,-3.96967 z m -3.98518,6.95116 -4.96401,4.96402 0,-0.9928 4.96401,-4.96402 0,0.9928 z m 4.96401,-2.9784 c -0.54759,0 -0.9928,-0.44521 -0.9928,-0.9928 0,-0.54759 0.44521,-0.9928 0.9928,-0.9928 0.5476,0 0.99281,0.44521 0.99281,0.9928 0,0.54759 -0.44521,0.9928 -0.99281,0.9928 z"
+ id="path7910"
+ style="fill:#ffcc00;fill-opacity:1;stroke:none;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#aa00d4;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="264.69296"
+ y="77.401039"
+ id="text4155-88-3-5-0"
+ sodipodi:linespacing="125%"
+ transform="matrix(1.000197,-5.3086121e-4,5.3064318e-4,0.99980276,0,0)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-7-3-8"
+ x="264.69296"
+ y="77.401039"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px;fill:#aa00d4">IV</tspan></text>
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.99999982;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4269-7"
+ width="180.77988"
+ height="61.370972"
+ x="34.376999"
+ y="71.948822" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="41.581425"
+ y="64.413086"
+ id="text4155-88-4-5"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.99980293)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-8-2"
+ x="41.581425"
+ y="64.413086"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">Encrypted master key</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="116.72441"
+ y="88.381607"
+ id="text4155-88-3-5"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.99980293)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-7-3"
+ x="116.72441"
+ y="88.381607"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">IV</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="55.701641"
+ y="126.48744"
+ id="text4155-88-3-5-2"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.99980293)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-7-3-1"
+ x="55.701641"
+ y="126.48744"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">authentication tag</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.01774597px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.66333771px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="77.074265"
+ y="107.18988"
+ id="text4155-88-3-5-5"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0001971,0.99980293)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-9-7-3-11"
+ x="77.074265"
+ y="107.18988"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">Ciphertext +</tspan><tspan
+ sodipodi:role="line"
+ x="77.074265"
+ y="125.94358"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.00295734px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px"
+ id="tspan10041" /></text>
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 34.412609,91.620715 180.708661,0"
+ id="path10326"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker11348)"
+ d="m 219.68504,110.37566 67.32284,0"
+ id="path11340"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker12104)"
+ d="m 350.7874,-50.101017 14.17323,0 0,145.578227"
+ id="path12096"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90.10359192px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:67.72786713px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="370.46933"
+ y="46.17672"
+ id="text4155-6-5-7-91"
+ sodipodi:linespacing="125%"
+ transform="scale(0.99921742,1.0007832)"><tspan
+ sodipodi:role="line"
+ id="tspan4157-3-0-7-1"
+ x="370.46933"
+ y="46.17672"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.01726532px;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px">KEK</tspan></text>
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker13078)"
+ d="m 219.68504,81.496055 99.2126,0 0,14.17322"
+ id="path13070"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker13890);marker-mid:"
+ d="m 230.31497,-53.149629 28.34645,0"
+ id="path13880"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker13078);marker-mid:"
+ d="m 219.68504,24.803127 85.03938,0 0,-60.236221"
+ id="path13882"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 0000000..755f510
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,32 @@
+gocryptfs - An encrypted filesystem written in Go
+=================================================
+
+gocryptfs uses file-based encryption that is implemented as a mountable
+FUSE filesystem.
+Each file in gocryptfs is stored one corresponding encrypted files on the hard disk. The
+screenshot below shows a mounted gocryptfs filesystem (left) and the
+encrypted files (right).
+
+The encrypted files can be stored in any folder on your hard disk, a USB
+stick or even inside the Dropbox folder. One advantage of file-based
+encryption as opposed to disk encryption is that encrypted files can
+be synchronised efficiently using standard tools like Dropbox or rsync.
+Also, the size of the encrypted filesystem is dynamic and only limited
+by the available disk space.
+
+![](img/folders-side-by-side.png)
+
+This project was inspired by EncFS and strives to fix its security
+issues while providing good performance.
+See the [Security](security) page for details on gocryptfs's cryptographic
+design.
+
+gocryptfs is a young project. While bugs in any software can cause issues,
+bugs in encryption software can cause catastrophic data loss. Keep a backup
+of your gocryptfs filesystem *and* store a copy of your master key (printed
+on mount) in a safe place.
+
+Only Linux is supported at the moment. Help is wanted for a Mac OS X port.
+Please contact me by filing an issue on the
+[github project](https://github.com/rfjakob/gocryptfs).
+
diff --git a/docs/manpage.md b/docs/manpage.md
new file mode 100644
index 0000000..2e440b2
--- /dev/null
+++ b/docs/manpage.md
@@ -0,0 +1,101 @@
+% GOCRYPTFS(1)
+% github.com/rfjakob
+% Nov 2015
+
+NAME
+====
+
+gocryptfs - mount an encrypted directory
+
+SYNOPSIS
+========
+
+Initialize encrypted filesystem
+-------------------------------
+
+gocryptfs -init [OPTIONS] CIPHERDIR
+
+Mount
+-----
+
+gocryptfs [OPTIONS] CIPHERDIR MOUNTPOINT
+
+Change password
+---------------
+
+gocryptfs -passwd [OPTIONS] CIPHERDIR
+
+DESCRIPTION
+===========
+
+Options:
+
+**-config string**
+: Use specified config file instead of CIPHERDIR/gocryptfs.conf
+
+**-cpuprofile string**
+: Write cpu profile to specified file
+
+**-debug**
+: Enable debug output
+
+**-diriv**
+: Use per-directory file name IV (default true)
+
+**-emenames**
+: Use EME filename encryption (default true). This option implies diriv.
+
+**-extpass string**
+: Use an external program (like ssh-askpass) for the password prompt.
+The program should return the password on stdout, a trailing newline is
+stripped by gocryptfs. Using something like "cat /mypassword.txt" allows
+to mount the gocryptfs filesytem without user interaction.
+
+**-f**
+: Stay in the foreground instead of forking away.
+
+**-fusedebug**
+: Enable fuse library debug output
+
+**-gcmiv128**
+: Use an 128-bit IV for GCM encryption instead of Go's default of
+96 bits (default true). This pushes back the birthday bound for IV
+collisions far enough to make it irrelevant.
+
+**-init**
+: Initialize encrypted directory
+
+**-masterkey string**
+: Mount with explicit master key specified on the command line. This
+option can be used to mount a gocryptfs filesystem without a config file.
+Note that the command line, and with it the master key, is visible to
+anybody on the machine who can execute "ps -auxwww".
+
+**-notifypid int**
+: Send USR1 to the specified process after successful mount. This is
+used internally for daemonization.
+
+**-openssl bool**
+: Use OpenSSL instead of built-in Go crypto (default true). Using
+built-in crypto is 4x slower.
+
+**-passwd**
+: Change password
+
+**-plaintextnames**
+: Do not encrypt file names
+
+**-q**
+: Quiet - silence informational messages
+
+**-scryptn int**
+: scrypt cost parameter logN. Setting this to a lower value speeds up
+mounting but makes the password susceptible to brute-force attacks (default 16)
+
+**-version**
+: Print version and exit
+
+**-zerokey**
+: Use all-zero dummy master key. This options is only intended for
+automated testing as it does not provide any security.
+
diff --git a/docs/quickstart.md b/docs/quickstart.md
new file mode 100644
index 0000000..a5dd19f
--- /dev/null
+++ b/docs/quickstart.md
@@ -0,0 +1,41 @@
+gocryptfs Quickstart
+====================
+
+You need to have the Go runtime and the OpenSSL headers installed to
+compile gocryptfs.
+
+On Fedora,
+
+ $ sudo dnf install golang openssl-devel
+
+On Debian and Ubuntu,
+
+ $ sudo apt-get install golang libssl-dev
+
+Also, GOPATH must be set. Usually it is simply set to the home directory:
+
+ $ export GOPATH=$HOME
+
+Download
+-------
+
+ $ go get -d github.com/rfjakob/gocryptfs
+
+Compile
+-------
+
+ $ ~/src/github.com/rfjakob/gocryptfs/build.bash
+ $ mkdir -p ~/bin && cp ~/src/github.com/rfjakob/gocryptfs/gocryptfs ~/bin
+
+Create and Mount Filesystem
+---------------------------
+
+ $ mkdir cipher plain
+ $ ~/bin/gocryptfs -init cipher
+ [...]
+ $ ~/bin/gocryptfs cipher plain
+ [...]
+ $ echo test > plain/test.txt
+ $ ls cipher
+ gocryptfs.conf gocryptfs.diriv ZSuIZVzYDy5-TbhWKY-ciA==
+
diff --git a/docs/security.md b/docs/security.md
new file mode 100644
index 0000000..49bfa8a
--- /dev/null
+++ b/docs/security.md
@@ -0,0 +1,51 @@
+gocryptfs Security
+==================
+
+gocryptfs builts upon well-known cryptographic primitives: scrypt for
+key derivation, AES-GCM for file content encryption and, as a world's
+first for encrypted filesystems, EME for file name encryption.
+
+Master Key Storage
+------------------
+
+The master key is used to perform content and file name encryption.
+It is stored in `gocryptfs.conf`, encrypted with AES-256-GCM using the
+Key Encryption Key (KEK).
+
+The KEK is generated from the user password using `scrypt`.
+
+![](img/master-key.svg)
+
+File Contents
+-------------
+
+All file contents are encrypted using AES-256-GCM (Galois/Counter Mode).
+
+Files are segmented into 4KB blocks. Each block gets a fresh random
+128 bit IV each time it is modified. A 128-bit authentication tag (GHASH)
+protects each block from modifications.
+
+Each file has a header containing a random 128-bit file ID. The
+file ID and the block number are mixed into the GHASH as
+*additional authenticated data*. The prevents blocks from being copied
+between or within files.
+
+![](img/file-content-encryption.svg)
+
+To support sparse files, all-zero blocks are accepted and passed through
+unchanged.
+
+File Names
+----------
+
+Every directory gets a 128-bit directory IV that is stored in each
+directory as `gocryptfs.diriv`.
+
+File names are encrypted using AES-256-EME (ECB-Mix-ECB wide-block encryption,
+see https://github.com/rfjakob/eme for details) with the directory IV
+as initialization vector. EME fixes the prefix leak that occours with CBC
+encryption.
+
+![](img/file-name-encryption.svg)
+
+The Base64 encoding limits the usable filename length to 176 characters.
diff --git a/mkdocs.yml b/mkdocs.yml
new file mode 100644
index 0000000..e44072a
--- /dev/null
+++ b/mkdocs.yml
@@ -0,0 +1,7 @@
+site_name: gocryptfs
+theme: readthedocs
+theme_dir: xreadthedocs
+pages:
+- Home: index.md
+- Quickstart: quickstart.md
+- Security: security.md
diff --git a/xreadthedocs/base.html b/xreadthedocs/base.html
index 042b00a..82e9d49 100644
--- a/xreadthedocs/base.html
+++ b/xreadthedocs/base.html
@@ -12,7 +12,6 @@
{% else %}<link rel="shortcut icon" href="{{ base_url }}/img/favicon.ico">{% endif %}
{# CSS #}
- <link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="{{ base_url }}/css/theme.css" type="text/css" />
<link rel="stylesheet" href="{{ base_url }}/css/theme_extra.css" type="text/css" />
@@ -38,17 +37,6 @@
<script src="{{ path }}"></script>
{%- endfor %}
- {% if google_analytics %}
- <script>
- (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
- (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
- m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
- })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-
- ga('create', '{{ google_analytics[0] }}', '{{ google_analytics[1] }}');
- ga('send', 'pageview');
- </script>
- {% endif %}
</head>
<body class="wy-body-for-nav" role="document">
@@ -58,8 +46,9 @@
{# SIDE NAV, TOGGLES ON MOBILE #}
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-nav-search">
- <a href="{{ homepage_url }}" class="icon icon-home"> {{ site_name }}</a>
- {% include "searchbox.html" %}
+ <a class="site-title" href="{{ homepage_url }}">
+ <span class="base0b">go</span><span class="base0c">crypt</span><span class="base0d">fs</span>
+ </a>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@@ -67,6 +56,8 @@
{% for nav_item in nav %}
<li>{% include "toc.html" %}<li>
{% endfor %}
+ <li><a href="https://github.com/rfjakob/gocryptfs#changelog">Changelog ➚</a></li>
+ <li><a href="https://github.com/rfjakob/gocryptfs/blob/master/Documentation/MANPAGE.md">Man Page ➚</a></li>
</ul>
</div>
&nbsp;
@@ -77,13 +68,14 @@
{# MOBILE NAV, TRIGGLES SIDE NAV ON TOGGLE #}
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
- <a href="{{ homepage_url }}">{{ site_name }}</a>
+ <a class="site-title" href="{{ homepage_url }}">
+ <span class="base0b">go</span><span class="base0c">crypt</span><span class="base0d">fs</span>
+ </a>
</nav>
{# PAGE CONTENT #}
<div class="wy-nav-content">
<div class="rst-content">
- {% include "breadcrumbs.html" %}
<div role="main">
<div class="section">
{% block content %}
diff --git a/xreadthedocs/css/theme_extra.css b/xreadthedocs/css/theme_extra.css
index ccb384e..046cf33 100644
--- a/xreadthedocs/css/theme_extra.css
+++ b/xreadthedocs/css/theme_extra.css
@@ -124,3 +124,58 @@ code.cs, code.c {
.wy-menu-vertical li ul.subnav ul.subnav{
padding-left: 1em;
}
+
+
+.wy-side-nav-search {
+ background-color: #343131 !important;
+}
+
+.wy-nav-top {
+ background-color: #343131 !important;
+}
+
+.wy-side-nav-search a {
+ margin-bottom: 0;
+}
+
+a.site-title {
+ font-size: 200%;
+}
+/* Base16 Eighties Colorscheme by Chris Kempson (http://chriskempson.com) */
+/* CSS from https://github.com/htdvisser/hugo-base16-theme */
+.base00 { color: #2d2d2d; }
+.base01 { color: #393939; }
+.base02 { color: #515151; }
+.base03 { color: #747369; }
+.base04 { color: #a09f93; }
+.base05 { color: #d3d0c8; }
+.base06 { color: #e8e6df; }
+.base07 { color: #f2f0ec; }
+.base08 { color: #f2777a; }
+.base09 { color: #f99157; }
+.base0a { color: #ffcc66; }
+.base0b { color: #99cc99; }
+.base0c { color: #66cccc; }
+.base0d { color: #6699cc; }
+.base0e { color: #cc99cc; }
+.base0f { color: #d27b53; }
+
+
+div.builtwith a {
+ color: #aaa;
+}
+
+.rst-versions .rst-current-version {
+ text-align: center;
+ padding-top: 0;
+}
+
+.rst-versions .rst-current-version a {
+ margin-right: 10px;
+}
+.fa-github:before, .icon-github:before {
+ font-size: 30px;
+ position: relative;
+ bottom: -6px;
+ margin-right: 8px;
+}
diff --git a/xreadthedocs/footer.html b/xreadthedocs/footer.html
index 9f707cd..45f1987 100644
--- a/xreadthedocs/footer.html
+++ b/xreadthedocs/footer.html
@@ -18,6 +18,7 @@
<p>{{ copyright }}</p>
{% endif %}
</div>
-
- Built with <a href="http://www.mkdocs.org">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
+ <div class="builtwith">
+ Built with <a href="http://www.mkdocs.org">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
+ </div>
</footer>
diff --git a/xreadthedocs/toc.html b/xreadthedocs/toc.html
index 6cd2fc9..4accc1b 100644
--- a/xreadthedocs/toc.html
+++ b/xreadthedocs/toc.html
@@ -10,6 +10,7 @@
<li class="toctree-l1 {% if nav_item.active%}current{%endif%}">
<a class="{% if nav_item.active%}current{%endif%}" href="{{ nav_item.url }}">{{ nav_item.title }}</a>
{% if nav_item == current_page %}
+<!--
<ul>
{% for toc_item in toc %}
<li class="toctree-l3"><a href="{{ toc_item.url }}">{{ toc_item.title }}</a></li>
@@ -18,6 +19,7 @@
{% endfor %}
{% endfor %}
</ul>
+-->
{% endif %}
</li>
{% endif %}
diff --git a/xreadthedocs/versions.html b/xreadthedocs/versions.html
index 4e23b49..6a34ee8 100644
--- a/xreadthedocs/versions.html
+++ b/xreadthedocs/versions.html
@@ -1,15 +1,15 @@
<div class="rst-versions" role="note" style="cursor: pointer">
<span class="rst-current-version" data-toggle="rst-current-version">
- {% if repo_name == 'GitHub' %}
- <a class="icon icon-github" style="float: left; color: #fcfcfc"> GitHub</a>
- {% elif repo_name == 'Bitbucket' %}
- <a class="icon icon-bitbucket" style="float: left; color: #fcfcfc"> BitBucket</a>
- {% endif %}
+ <a class="icon icon-github" href="https://github.com/rfjakob/gocryptfs">gocryptfs</a>
+ <a class="icon icon-github" href="https://github.com/rfjakob/gocryptfs-website">gocryptfs-website</a>
+
+<!--
{% if previous_page %}
<span><a href="{{ previous_page.url }}" style="color: #fcfcfc;">&laquo; Previous</a></span>
{% endif %}
{% if next_page %}
<span style="margin-left: 15px"><a href="{{ next_page.url }}" style="color: #fcfcfc">Next &raquo;</a></span>
{% endif %}
+-->
</span>
</div>