aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/img/file-name-encryption.svg686
-rw-r--r--docs/img/longnames.svg364
-rw-r--r--docs/security.md23
3 files changed, 760 insertions, 313 deletions
diff --git a/docs/img/file-name-encryption.svg b/docs/img/file-name-encryption.svg
index 45222e2..49eed5c 100644
--- a/docs/img/file-name-encryption.svg
+++ b/docs/img/file-name-encryption.svg
@@ -1,6 +1,4 @@
<?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#"
@@ -9,175 +7,170 @@
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"
+ id="svg2"
+ viewBox="0 0 677.77079 155.50895"
+ height="43.888088mm"
+ width="191.28198mm"
inkscape:version="0.91 r13725"
sodipodi:docname="file-name-encryption.svg">
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ id="namedview71"
+ showgrid="false"
+ inkscape:zoom="1.4689425"
+ inkscape:cx="357.14327"
+ inkscape:cy="70.698893"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
<defs
id="defs4">
<marker
- inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4710"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path4712" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker14911"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ 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="path14913" />
+ </marker>
+ <marker
orient="auto"
refY="0"
refX="0"
- id="marker14911"
- style="overflow:visible"
- inkscape:isstock="true">
+ id="marker9315"
+ style="overflow:visible">
<path
- id="path14913"
+ id="path9317"
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" />
+ transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
- inkscape:isstock="true"
- style="overflow:visible"
- id="marker9315"
- refX="0"
- refY="0"
orient="auto"
- inkscape:stockid="Arrow1Mend">
+ refY="0"
+ refX="0"
+ id="marker8949"
+ style="overflow:visible">
<path
- inkscape:connector-curvature="0"
- transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ id="path8951"
+ 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
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker8559"
+ style="overflow:visible">
+ <path
+ id="path8561"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
- id="path9317" />
+ 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"
+ id="Arrow1Mend"
refX="0"
refY="0"
- orient="auto"
- inkscape:stockid="Arrow1Mend"
- inkscape:collect="always">
+ orient="auto">
<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" />
+ id="path4311" />
</marker>
<marker
- inkscape:isstock="true"
style="overflow:visible"
- id="marker8559"
+ id="Arrow1Mend-9"
refX="0"
refY="0"
- orient="auto"
- inkscape:stockid="Arrow1Mend"
- inkscape:collect="always">
+ orient="auto">
<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" />
+ id="path4311-4" />
</marker>
<marker
- inkscape:stockid="Arrow1Mend"
- orient="auto"
- refY="0"
- refX="0"
- id="Arrow1Mend"
style="overflow:visible"
- inkscape:isstock="true">
+ id="Arrow1Mend-6"
+ refX="0"
+ refY="0"
+ orient="auto">
<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" />
+ 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="path4311-6" />
</marker>
<marker
- inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
- id="Arrow1Mend-9"
- style="overflow:visible"
- inkscape:isstock="true">
+ id="marker8949-8"
+ style="overflow:visible">
<path
- inkscape:connector-curvature="0"
- id="path4311-4"
+ id="path8951-2"
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">
+ id="marker14911-3"
+ refX="0"
+ refY="0"
+ orient="auto">
<path
- inkscape:connector-curvature="0"
- id="path4311-6"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ 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"
- transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path14913-9" />
</marker>
<marker
- inkscape:isstock="true"
style="overflow:visible"
- id="marker8949-8"
+ id="marker14911-4"
refX="0"
refY="0"
- orient="auto"
- inkscape:stockid="Arrow1Mend"
- inkscape:collect="always">
+ orient="auto">
<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" />
+ id="path14913-3" />
</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>
@@ -186,215 +179,282 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title />
+ <dc:title></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>
+ <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="468.62347"
+ y="26.152575" />
+ <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="480.00861"
+ y="35.399475" />
+ <text
+ sodipodi:linespacing="125%"
+ 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="528.9505"
+ y="18.790377"
+ id="text4155-7"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ id="tspan4157-2"
+ x="528.9505"
+ y="18.790377"
+ 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
+ sodipodi:linespacing="125%"
+ 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';text-align:start;letter-spacing:67.66544342px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="464.35181"
+ y="49.666214"
+ id="text4155-88-3"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ id="tspan4157-9-7"
+ x="517.82275"
+ y="49.666214"
+ 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;text-align:start;letter-spacing:0px;text-anchor:start">gocryptfs.diriv</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ 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="123.21727"
+ y="19.063375"
+ id="text8326"
+ transform="scale(1.0002283,0.99977177)"><tspan
+ id="tspan8328"
+ x="123.21727"
+ y="19.063375" /></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="120.16518"
+ y="67.653503"
+ ry="10.629921" />
+ <text
+ sodipodi:linespacing="125%"
+ 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';text-align:start;letter-spacing:67.66544342px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="83.790787"
+ y="83.762741"
+ id="text4155-6-5-7-9-1"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ id="tspan4157-3-0-7-6-8"
+ x="133.6032"
+ y="83.762741"
+ 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;text-align:start;letter-spacing:0px;text-anchor:start">AES-256-EME</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ 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(#marker14911)"
+ d="m 477.65721,44.5835 -272.2162,0.0896 0,17.75633"
+ id="path8551" />
+ <path
+ inkscape:connector-curvature="0"
+ 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(#marker14911)"
+ d="m 105.30558,78.21327 10.23686,0.0845"
+ id="path8941" />
+ <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="93.019562"
+ height="21.259859"
+ x="7.5866094"
+ y="67.653503" />
+ <text
+ sodipodi:linespacing="125%"
+ 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';text-align:start;letter-spacing:67.66544342px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-28.663677"
+ y="83.894608"
+ id="text4155-88-3-1"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ id="tspan4157-9-7-3"
+ x="12.273405"
+ y="83.894608"
+ 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;text-align:start;letter-spacing:0px;text-anchor:start">&quot;letter.doc&quot;</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ 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 252.08926,78.22938 19.07004,0.0844"
+ id="path8941-5" />
+ <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="480.12256"
+ y="67.653503" />
+ <text
+ sodipodi:linespacing="125%"
+ 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';text-align:start;letter-spacing:67.66544342px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="412.46362"
+ y="82.440414"
+ id="text4155-88-3-0"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ id="tspan4157-9-7-0"
+ x="490.88651"
+ y="82.440414"
+ 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;text-align:start;letter-spacing:0px;text-anchor:start">lrpyui0m-ypX4u0J[...]</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ 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';text-align:start;letter-spacing:67.72786713px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="80.818329"
+ y="22.509548"
+ id="text4155-8-2"
+ transform="scale(0.99921742,1.0007832)"><tspan
+ id="tspan4157-1-2"
+ x="121.0671"
+ y="22.509548"
+ 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;text-align:start;letter-spacing:0px;text-anchor:start">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="108.25377"
+ y="7.5866108" />
+ <path
+ inkscape:connector-curvature="0"
+ 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(#marker14911)"
+ d="m 157.77138,33.37986 0,29.21511"
+ id="path4825" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 148.95362,41.51744 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;marker-end:" />
+ <text
+ sodipodi:linespacing="125%"
+ 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="273.64389"
+ y="41.033386"
+ id="text4155-88-3-5-0"
+ transform="scale(1.0001971,0.99980293)"><tspan
+ id="tspan4157-9-7-3-8"
+ x="273.64389"
+ y="41.033386"
+ 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="275.96664"
+ y="67.653503"
+ ry="10.629921" />
+ <text
+ sodipodi:linespacing="125%"
+ 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';text-align:start;letter-spacing:67.66544342px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="259.29968"
+ y="83.762741"
+ id="text4155-6-5-7-9-1-8"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ id="tspan4157-3-0-7-6-8-2"
+ x="285.96225"
+ y="83.762741"
+ 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;text-align:start;letter-spacing:0px;text-anchor:start">Base64</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99999976;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker14911)"
+ d="m 446.92074,78.22938 29.64004,0.0844"
+ id="path8941-5-6" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.03947628;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect5368"
+ width="45.70974"
+ height="45.264011"
+ x="150.62018"
+ y="291.58447"
+ transform="matrix(0.83029426,-0.55732526,0.83029426,0.55732526,0,0)" />
+ <text
+ sodipodi:linespacing="125%"
+ 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';text-align:start;letter-spacing:67.72786713px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="358.14301"
+ y="82.782791"
+ id="text4155-8-2-4"
+ transform="scale(0.99921742,1.0007832)"><tspan
+ id="tspan4157-1-2-7"
+ x="381.4425"
+ y="82.782791"
+ 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;text-align:start;letter-spacing:0px;text-anchor:start">&gt;255?</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ 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 352.93473,79.00254 9.72,0.0844"
+ id="path8941-5-6-7" />
+ <text
+ sodipodi:linespacing="125%"
+ 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="401.43661"
+ y="139.4736"
+ id="text4155-8-2-4-9"
+ transform="scale(0.99921742,1.0007832)"><tspan
+ id="tspan4157-1-2-7-4"
+ x="401.43661"
+ y="139.4736"
+ 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" /></text>
+ <text
+ sodipodi:linespacing="125%"
+ 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="448.41714"
+ y="73.639313"
+ id="text4155-8-2-4-6"
+ transform="scale(0.99921742,1.0007832)"><tspan
+ id="tspan4157-1-2-7-7"
+ x="448.41714"
+ y="73.639313"
+ 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">no</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99999976;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker14911)"
+ d="m 404.80432,106.56611 -0.0844,14.92333"
+ id="path8941-5-6-4" />
+ <text
+ sodipodi:linespacing="125%"
+ 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="412.19815"
+ y="116.90604"
+ id="text4155-8-2-4-6-4"
+ transform="scale(0.99921742,1.0007832)"><tspan
+ id="tspan4157-1-2-7-7-1"
+ x="412.19815"
+ y="116.90604"
+ 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">yes</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-4"
+ width="202.07074"
+ height="21.259842"
+ x="303.90424"
+ y="126.66251"
+ ry="10.629921" />
+ <text
+ sodipodi:linespacing="125%"
+ 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';text-align:start;letter-spacing:67.66544342px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="229.24414"
+ y="142.7852"
+ id="text4155-6-5-7-9-1-8-3"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ id="tspan4157-3-0-7-6-8-2-2"
+ x="316.49915"
+ y="142.7852"
+ 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;text-align:start;letter-spacing:0px;text-anchor:start">long file name handling</tspan></text>
</svg>
diff --git a/docs/img/longnames.svg b/docs/img/longnames.svg
new file mode 100644
index 0000000..2cf1684
--- /dev/null
+++ b/docs/img/longnames.svg
@@ -0,0 +1,364 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 687.79717 138.28399"
+ height="39.026821mm"
+ width="194.11165mm"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="longnames.svg">
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1682"
+ inkscape:window-height="797"
+ id="namedview58"
+ showgrid="false"
+ inkscape:zoom="2.8950581"
+ inkscape:cx="467.97533"
+ inkscape:cy="132.10996"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg2" />
+ <defs
+ id="defs4">
+ <marker
+ style="overflow:visible"
+ id="marker7513"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ 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="path7515" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="DotS"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(0.2,0,0,0.2,1.48,0.2)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
+ id="path6608" />
+ </marker>
+ <marker
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker6467"
+ style="overflow:visible">
+ <path
+ id="path6469"
+ 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
+ style="overflow:visible"
+ id="marker14911"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ 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="path14913" />
+ </marker>
+ <marker
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker9315"
+ style="overflow:visible">
+ <path
+ id="path9317"
+ 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
+ style="overflow:visible"
+ id="Arrow1Mend"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ 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="path4311" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Mend-9"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ 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="path4311-4" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Mend-6"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ 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="path4311-6" />
+ </marker>
+ <marker
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker8949"
+ style="overflow:visible">
+ <path
+ id="path8951"
+ 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
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker8949-9"
+ style="overflow:visible">
+ <path
+ id="path8951-3"
+ 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>
+ <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>
+ <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="274.79169"
+ height="77.519493"
+ x="405.91885"
+ y="31.826931" />
+ <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="258.29117"
+ height="21.25984"
+ x="417.30399"
+ y="39.927364" />
+ <text
+ sodipodi:linespacing="125%"
+ 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="506.43866"
+ y="128.10651"
+ id="text4155-7"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ id="tspan4157-2"
+ x="506.43866"
+ y="128.10651"
+ 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
+ sodipodi:linespacing="125%"
+ 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="421.01343"
+ y="55.057564"
+ id="text4155-88-3"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ id="tspan4157-9-7"
+ x="421.01343"
+ y="55.057564"
+ 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.longname.[hash].name</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ 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="114.51466"
+ y="-3.5516858"
+ id="text8326"
+ transform="scale(1.0002283,0.99977177)"><tspan
+ id="tspan8328"
+ x="114.51466"
+ y="-3.5516858" /></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="76.188766"
+ height="21.259842"
+ x="202.9758"
+ y="12.682918"
+ ry="10.629921" />
+ <text
+ sodipodi:linespacing="125%"
+ 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';text-align:start;letter-spacing:67.66544342px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="182.57887"
+ y="28.779608"
+ id="text4155-6-5-7-9-1"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ id="tspan4157-3-0-7-6-8"
+ x="211.46852"
+ y="28.779608"
+ 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;text-align:start;letter-spacing:0px;text-anchor:start">SHA256</tspan></text>
+ <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="171.75362"
+ height="21.25984"
+ x="2.2294824"
+ y="12.682918" />
+ <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="311.73792"
+ y="12.682918"
+ ry="10.629921" />
+ <text
+ sodipodi:linespacing="125%"
+ 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';text-align:start;letter-spacing:67.66544342px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="297.06235"
+ y="28.779608"
+ id="text4155-6-5-7-9-1-8"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ id="tspan4157-3-0-7-6-8-2"
+ x="323.72491"
+ y="28.779608"
+ 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;text-align:start;letter-spacing:0px;text-anchor:start">Base64</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99999976;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker8949)"
+ d="m 178.0405,23.27359 19.57606,0.0845"
+ id="path8941" />
+ <path
+ inkscape:connector-curvature="0"
+ 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-9)"
+ d="m 285.02647,23.25677 20.37632,0.0845"
+ id="path8941-7" />
+ <text
+ sodipodi:linespacing="125%"
+ 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';text-align:center;letter-spacing:67.66544342px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="86.500496"
+ y="28.1807"
+ id="text4155-88-3-0"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ id="tspan4157-9-7-0"
+ x="86.500496"
+ y="28.1807"
+ 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;text-align:center;letter-spacing:0px;text-anchor:middle">lrpyui0m-ypX4u0J[...]</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ 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(#marker14911)"
+ d="m 391.55368,22.29831 199.7411,0 0,13.40393"
+ id="path6259" />
+ <path
+ inkscape:connector-curvature="0"
+ 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-start:url(#DotS);marker-end:url(#marker6467)"
+ d="m 185.97339,23.294985 0,29.13961 226.24516,0"
+ id="path6459" />
+ <text
+ sodipodi:linespacing="125%"
+ 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';text-align:center;letter-spacing:67.66544342px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="301.09375"
+ y="68.734352"
+ id="text4155-88-3-0-6"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ x="301.09375"
+ y="68.734352"
+ 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;text-align:center;letter-spacing:0px;text-anchor:middle"
+ id="tspan7261">long name stored</tspan><tspan
+ x="301.09375"
+ y="87.488625"
+ 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;text-align:center;letter-spacing:0px;text-anchor:middle"
+ id="tspan7269">in .name file</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ 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';text-align:start;letter-spacing:67.66544342px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="280.10657"
+ y="18.48731"
+ id="text4155-88-3-0-6-5"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ x="392.32825"
+ y="18.48731"
+ 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;text-align:start;letter-spacing:0px;text-anchor:start"
+ id="tspan7269-5">hash used fort short file name</tspan></text>
+ <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-8"
+ width="258.29117"
+ height="21.25984"
+ x="416.83432"
+ y="73.659081" />
+ <text
+ sodipodi:linespacing="125%"
+ 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="420.54388"
+ y="88.796974"
+ id="text4155-88-3-07"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ id="tspan4157-9-7-1"
+ x="420.54388"
+ y="88.796974"
+ 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.longname.[hash]</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ 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';text-align:center;letter-spacing:67.66544342px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="303.16571"
+ y="129.60388"
+ id="text4155-88-3-0-6-7"
+ transform="scale(1.0002283,0.99977176)"><tspan
+ x="303.16571"
+ y="129.60388"
+ 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;text-align:center;letter-spacing:0px;text-anchor:middle"
+ id="tspan7269-6">file content</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ 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(#marker7513)"
+ d="M 351.84771,123.85346 412.08392,95.507"
+ id="path7505" />
+</svg>
diff --git a/docs/security.md b/docs/security.md
index d43201a..fa74294 100644
--- a/docs/security.md
+++ b/docs/security.md
@@ -51,3 +51,26 @@ encryption.
![](img/file-name-encryption.svg)
The Base64 encoding limits the usable filename length to 176 characters.
+Filenames that are longer than that (longer than 255 characters in Base64-
+encoded form) use long file name handling (since gocrytfs v0.9).
+
+Long File Name Handling
+-----------------------
+
+If the Base64-encoded encrypted name is longer than 255 characters,
+it cannot be used as the file name on disk, as Linux filesystems
+do not allow names longer than that.
+
+Instead, the encrypted name is hashed, and the file content is stored in
+`gocryptfs.longname.[hash]`. The long file name is stored in a support
+file, `gocryptfs.longname.[hash].name`.
+
+![](img/longnames.svg)
+
+This method for storing long file names has zero performance impact
+for filenames that are <= 176 characters, incurs no extra disk accesses
+for opening a file with a long name, and just one extra file read for each
+long-name file on readdir(1).
+
+Because the hash is only taken from the encrypted file name, there is no
+security penalty for using long names.