diff options
author | Jakob Unterwurzacher | 2015-12-20 18:17:06 +0100 |
---|---|---|
committer | Jakob Unterwurzacher | 2015-12-20 18:17:06 +0100 |
commit | 0ebc0b7412d811b0865080573555100649a068fc (patch) | |
tree | af0e732abf52e34ec65e8f234a6b93ea92b1b4ca | |
parent | f419d49d65fc638fd15b603364b2e8e92609da91 (diff) |
Add content, customize theme
-rw-r--r-- | README.md | 3 | ||||
-rw-r--r-- | docs/img/file-content-encryption.svg | 516 | ||||
-rw-r--r-- | docs/img/file-name-encryption.svg | 400 | ||||
-rw-r--r-- | docs/img/folders-side-by-side.png | bin | 0 -> 143506 bytes | |||
-rw-r--r-- | docs/img/master-key.svg | 434 | ||||
-rw-r--r-- | docs/index.md | 32 | ||||
-rw-r--r-- | docs/manpage.md | 101 | ||||
-rw-r--r-- | docs/quickstart.md | 41 | ||||
-rw-r--r-- | docs/security.md | 51 | ||||
-rw-r--r-- | mkdocs.yml | 7 | ||||
-rw-r--r-- | xreadthedocs/base.html | 24 | ||||
-rw-r--r-- | xreadthedocs/css/theme_extra.css | 55 | ||||
-rw-r--r-- | xreadthedocs/footer.html | 5 | ||||
-rw-r--r-- | xreadthedocs/toc.html | 2 | ||||
-rw-r--r-- | xreadthedocs/versions.html | 10 |
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">"letter.doc"</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 Binary files differnew file mode 100644 index 0000000..92119f8 --- /dev/null +++ b/docs/img/folders-side-by-side.png 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. + + + +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`. + + + +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. + + + +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. + + + +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> @@ -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;">« Previous</a></span> {% endif %} {% if next_page %} <span style="margin-left: 15px"><a href="{{ next_page.url }}" style="color: #fcfcfc">Next »</a></span> {% endif %} +--> </span> </div> |