response
This commit is contained in:
parent
8cbe9b7dd3
commit
c16e571e36
2 changed files with 63 additions and 0 deletions
|
@ -0,0 +1,44 @@
|
||||||
|
[[!comment format=mdwn
|
||||||
|
username="joey"
|
||||||
|
subject="""comment 10"""
|
||||||
|
date="2018-07-19T16:16:14Z"
|
||||||
|
content="""
|
||||||
|
@oliv5 sharedpubkey's cipher has the same newline problem as pubkey does,
|
||||||
|
as discussed above. Unlike pubkey, it has to be base64-decoded first,
|
||||||
|
and then the extra newline appended to that.
|
||||||
|
|
||||||
|
# Pull out MAC cipher from beginning of cipher
|
||||||
|
if [ \"$encryption\" = \"hybrid\" ] ; then
|
||||||
|
cipher=\"$(echo -n \"$cipher\" | head -c 256 )\"
|
||||||
|
elif [ \"$encryption\" = \"shared\" ] ; then
|
||||||
|
cipher=\"$(echo -n \"$cipher\" | base64 -d | head -c 256 )\"
|
||||||
|
elif [ \"$encryption\" = \"pubkey\" ] ; then
|
||||||
|
cipher=\"$cipher
|
||||||
|
\"
|
||||||
|
elif [ \"$encryption\" = \"sharedpubkey\" ] ; then
|
||||||
|
cipher=\"$(echo -n \"$cipher\" | base64 -d)\"
|
||||||
|
cipher=\"$cipher
|
||||||
|
\"
|
||||||
|
fi
|
||||||
|
|
||||||
|
Note that base64 -d does emit the newline (verified with hexdump);
|
||||||
|
again the shell is shooting you in the foot by eliminating it.
|
||||||
|
|
||||||
|
BTW, a very simple code hack that makes it easy to dump out the cipher git-annex
|
||||||
|
is using:
|
||||||
|
|
||||||
|
diff --git a/Remote/Helper/Encryptable.hs b/Remote/Helper/Encryptable.hs
|
||||||
|
index 97e55a415..c4d252912 100644
|
||||||
|
--- a/Remote/Helper/Encryptable.hs
|
||||||
|
+++ b/Remote/Helper/Encryptable.hs
|
||||||
|
@@ -192,7 +192,7 @@ describeCipher :: StorableCipher -> String
|
||||||
|
describeCipher c = case c of
|
||||||
|
(SharedCipher _) -> \"encryption key stored in git repository\"
|
||||||
|
(EncryptedCipher _ _ ks) -> showkeys ks
|
||||||
|
- (SharedPubKeyCipher _ ks) -> showkeys ks
|
||||||
|
+ (SharedPubKeyCipher c ks) -> show c ++ \" \" ++ showkeys ks
|
||||||
|
where
|
||||||
|
showkeys (KeyIds { keyIds = ks }) = \"to gpg keys: \" ++ unwords ks
|
||||||
|
|
||||||
|
Then git-annex info remote will display it. Obviously, this patch is insecure.
|
||||||
|
"""]]
|
|
@ -0,0 +1,19 @@
|
||||||
|
[[!comment format=mdwn
|
||||||
|
username="joey"
|
||||||
|
subject="""comment 7"""
|
||||||
|
date="2018-07-19T16:57:22Z"
|
||||||
|
content="""
|
||||||
|
I have addressed the sharedpubkey thing in the other thread.
|
||||||
|
|
||||||
|
Chunk keys may have a -S as well as the -C, if the special remote was
|
||||||
|
set up with new-style chunking enabled.
|
||||||
|
|
||||||
|
A remote can have several different chunk sizes over its
|
||||||
|
lifetime; the chunk size used for a given key is in the .log.cnk file
|
||||||
|
in the git-annex branch, documented in [[internals]].
|
||||||
|
|
||||||
|
The easy way to test if you are generating
|
||||||
|
the right key, prior to HMAC encrypting it, is to set up a non-encrypted
|
||||||
|
special remote with the same chunking configuration, and look at the chunk
|
||||||
|
keys used when files are stored in it.
|
||||||
|
"""]]
|
Loading…
Add table
Add a link
Reference in a new issue