tkeyops - coffin - secure lan file storage on a device
HTML git clone git://parazyd.org/coffin.git
DIR Log
DIR Files
DIR Refs
DIR Submodules
DIR README
DIR LICENSE
---
tkeyops (3811B)
---
1 #!/usr/bin/env zsh
2 #
3 # Copyright (c) 2016 Dyne.org Foundation
4 # coffin is written and maintained by Ivan J. <parazyd@dyne.org>
5 #
6 # This file is part of coffin
7 #
8 # This source code is free software: you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation, either version 3 of the License, or
11 # (at your option) any later version.
12 #
13 # This software is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with this source code. If not, see <http://www.gnu.org/licenses/>.
20
21 vars+=(keyhash)
22
23 hash-key() {
24 fn hash-key
25
26 keyhash=""
27 keyhash=${$(sha256sum $COFFINDOT/$tombid.key)[(ws: :)1]}
28 }
29
30 compare-key() {
31 fn compare-key
32
33 hash-key
34 $(grep $keyhash $TOMBS | grep $keyuuid) || return 1
35 }
36
37 genssl() {
38 fn genssl
39 req=(tombid COFFINDOT GRAVEYARD)
40 ckreq || return 1
41
42 notice "generating tomb's ssl cert"
43
44 openssl genrsa -out $COFFINDOT/${tombid}-priv.pem 4096
45 openssl rsa -in $COFFINDOT/${tombid}-priv.pem \
46 -out $GRAVEYARD/${tombid}-pub.pem \
47 -outform PEM \
48 -pubout
49
50 cp -f $GRAVEYARD/${tombid}-pub.pem $COFFINDOT/
51 }
52
53 encrypt-password() {
54 fn encrypt-password $*
55 req=(password GRAVEYARD tombid)
56 local password="$*"
57 ckreq || return 1
58
59 act "encrypting password"
60 print $password | openssl rsautl -encrypt -inkey $GRAVEYARD/${tombid}-pub.pem -pubin \
61 > $GRAVEYARD/${tombid}.pass
62 }
63
64 decrypt-password() {
65 fn decrypt-password
66 req=(tombid GRAVEYARD COFFINDOT)
67 ckreq || return 1
68
69 act "decrypting password"
70 openssl rsautl -decrypt -inkey $COFFINDOT/${tombid}-priv.pem -in $GRAVEYARD/${tombid}.pass
71 }
72
73 # ,_-=(!7(7/zs_.
74 # .=' ' .`/,/!(=)Zm.
75 # .._,,._.. ,-`- `,\ ` -` -`\\7//WW.
76 # ,v=~/.-,-\- -!|V-s.)iT-|s|\-.' `///mK%.
77 # v!`i!-.e]-g`bT/i(/[=.Z/m)K(YNYi.. /-]i44M.
78 # v`/,`|v]-DvLcfZ/eV/iDLN\D/ZK@%8W[Z.. `/d!Z8m
79 # //,c\(2(X/NYNY8]ZZ/bZd\()/\7WY%WKKW) -'|(][%4.
80 # ,\\i\c(e)WX@WKKZKDKWMZ8(b5/ZK8]Z7%ffVM, -.Y!bNMi
81 # /-iit5N)KWG%%8%%%%W8%ZWM(8YZvD)XN(@. [ \]!/GXW[
82 # / ))G8\NMN%W%%%%%%%%%%8KK@WZKYK*ZG5KMi,- vi[NZGM[
83 # i\!(44Y8K%8%%%**~YZYZ@%%%%%4KWZ/PKN)ZDZ7 c=//WZK%! This is a euphemism for how my code is structured.
84 # ,\v\YtMZW8W%%f`,`.t/bNZZK%%W%%ZXb*K(K5DZ -c\\/KM48
85 # -|c5PbM4DDW%f v./c\[tMY8W%PMW%D@KW)Gbf -/(=ZZKM8[ If you're reading this, you have probably been put
86 # 2(N8YXWK85@K -'c|K4/KKK%@ V%@@WD8e~ .//ct)8ZK%8` in charge of maintaining this program.
87 # =)b%]Nd)@KM[ !'\cG!iWYK%%| !M@KZf -c\))ZDKW%`
88 # YYKWZGNM4/Pb '-VscP4]b@W% 'Mf` -L\///KM(%W! I am so, so sorry for you.
89 # !KKW4ZK/W7)Z. '/cttbY)DKW% -` .',\v)K(5KW%%f
90 # 'W)KWKZZg)Z2/,!/L(-DYYb54% ,,`, -\-/v(((KK5WW%f God speed.
91 # \M4NDDKZZ(e!/\7vNTtZd)8\Mi!\-,-/i-v((tKNGN%W%%
92 # 'M8M88(Zd))///((|D\tDY\\KK-`/-i(=)KtNNN@W%%%@%[
93 # !8%@KW5KKN4///s(\Pd!ROBY8/=2(/4ZdzKD%K%%%M8@%%
94 # '%%%W%dGNtPK(c\/2\[Z(ttNYZ2NZW8W8K%%%%YKM%M%%.
95 # *%%W%GW5@/%!e]_tZdY()v)ZXMZW%W%%%*5Y]K%ZK%8[
96 # '*%%%%8%8WK\)[/ZmZ/Zi]!/M%%%%@f\ \Y/NNMK%%!
97 # 'VM%%%%W%WN5Z/Gt5/b)((cV@f` - |cZbMKW%%|
98 # 'V*M%%%WZ/ZG\t5((+)L'-,,/ -)X(NWW%%%
99 # `~`MZ/DZGNZG5(((\, ,t\\Z)KW%@
100 # 'M8K%8GN8\5(5///]i!v\K)85W%%f
101 # YWWKKKKWZ8G54X/GGMeK@WM8%@
102 # !M8%8%48WG@KWYbW%WWW%%%@
103 # VM%WKWK%8K%%8WWWW%%%@`
104 # ~*%%%%%%W%%%%%%%@~
105 # ~*MM%%%%%%@f`
106 # '''''