Patch from Karl-Heinz Ruskowski.
Here his message: Hallo, uns sind hier zwei Fehler an dem gnupg.vim-script aufgefallen die wir hier erstmal vorsorglich umgangen haben. (Patch hängt an) 1. Wenn wenn Einträge in der in der Empfängerliste waren die einen Trustlevel < 4 hatten frage Gnupg nochmal nach ob denn nun dieser Schlüssel übernommen werden sollte wenn man dies verneinte wurde die Datei dennoch gespeichert, aber unverschlüsselt - was sicher die schlechteste lösung ist. Kleiner auszug aus der Schell darüber: ========================================= pub 1024g/6E4DF128 2006-12-06 Sascha L. Teichmann <s-l-teichmann@users.sourceforge.net> Haupt-Fingerabdruck = 4F52 9526 6786 0497 4390 676F B2BB CE94 57FC 1337 Unter-Fingerabdruck = AD32 F49A C4AD 7113 CF0D 0303 548A 53F3 6E4D F128 It is NOT certain that the key belongs to the person named in the user ID. If you *really* know what you are doing, you may answer the next question with yes. Use this key anyway? (y/N) --> Vorgabe (also nein) führt zu "Zugang/Zugang.gpg" 0L, 0C geschrieben ========================================= Mittels "--trust-model always" erzwingen wir die zustimung und die Daten bleiben verschlüsselt. 2. Wenn man die Empfänger einer Datei bearbeitet hat und man verlässt den Puffer zur eingabe und nun wird ein eingetragener Schlüssel gelöscht speichert man wieder eine kaputte gpg Datei. Ich habe eine zusätzliche prüfung auf unbekannte Empfänger hinzugefügt und lösche diese Unbekannten Keys vor er verschlüsselung. In beiden fällen war es mir nicht möglich bei einem aufgetretenen Fehler wieder zurück in den Editormodus zu wechseln, was sicher an meinen schlechten Vimscript Kenntnissen liegt. Dies wäre aus meiner Sicht natürlich die beste Lösung. Hoffe ich konnte helfen. Mit freundlichen Grüßen Karl-Heinz Ruskowski -- Karl-Heinz Ruskowski OpenPGP key: FB8DA3BF Intevation GmbH, Osnabrück Amtsgericht Osnabrück, HR B 18998 http://www.intevation.de/ Geschäftsführer: Frank Koormann, Bernhard Reiter, Dr. Jan-Oliver Wagner
This commit is contained in:
parent
9cb02c800a
commit
c7ab1464da
@ -108,7 +108,7 @@ fun s:GPGInit()
|
||||
|
||||
" check what gpg command to use
|
||||
if (!exists("g:GPGExecutable"))
|
||||
let g:GPGExecutable = "gpg"
|
||||
let g:GPGExecutable = "gpg --trust-model always"
|
||||
endif
|
||||
|
||||
" check if gpg-agent is allowed
|
||||
@ -353,14 +353,56 @@ fun s:GPGEncrypt()
|
||||
let option=s:GetField(b:GPGOptions, ":", field)
|
||||
endw
|
||||
|
||||
let GPGUnknownRecipients=""
|
||||
let field=0
|
||||
let cur_recipient="-"
|
||||
|
||||
" Check recipientslist for unknown recipients again
|
||||
while(strlen(cur_recipient))
|
||||
let cur_recipient=s:GetField(b:GPGRecipients, ":", field)
|
||||
let field=field+1
|
||||
|
||||
" only do this if the line is not empty
|
||||
if (strlen(cur_recipient) > 0)
|
||||
let gpgid=s:GPGNameToID(cur_recipient)
|
||||
if (strlen(gpgid) <= 0)
|
||||
let GPGUnknownRecipients=GPGUnknownRecipients . cur_recipient . ":"
|
||||
echohl GPGWarning
|
||||
echo "The recipient " . cur_recipient . " is not in your public keyring!"
|
||||
echohl None
|
||||
endi
|
||||
endi
|
||||
endw
|
||||
|
||||
" check if there are unknown recipients and warn
|
||||
if (exists("b:GPGUnknownRecipients") && strlen(b:GPGUnknownRecipients) > 0)
|
||||
if(strlen(GPGUnknownRecipients) > 0)
|
||||
echohl GPGWarning
|
||||
echo "There are unknown recipients!!"
|
||||
echo "Please use GPGEditRecipients to correct!!"
|
||||
echo
|
||||
echohl None
|
||||
call s:GPGDebug(1, "unknown recipients are: " . b:GPGUnknownRecipients)
|
||||
call s:GPGDebug(1, "unknown recipients are: " . GPGUnknownRecipients)
|
||||
|
||||
" Remove unknown recipients from recipientslist
|
||||
let unknown_recipients_field=0
|
||||
let cur_unknown_recipient="-"
|
||||
let known_recipients=b:GPGRecipients
|
||||
while(strlen(cur_unknown_recipient))
|
||||
let cur_unknown_recipient=s:GetField(GPGUnknownRecipients, ":", unknown_recipients_field)
|
||||
|
||||
let match_result=match(known_recipients, cur_unknown_recipient.":")
|
||||
if(match_result > 0 && strlen(cur_unknown_recipient) > 0)
|
||||
echohl GPGWarning
|
||||
echo "Removing ". cur_unknown_recipient ." from recipientlist!\n"
|
||||
echohl None
|
||||
let Known_Recipients=substitute(known_recipients, cur_unknown_recipient .":", "", "g")
|
||||
endi
|
||||
|
||||
let unknown_recipients_field=unknown_recipients_field+1
|
||||
endw
|
||||
" Let user know whats happend and copy known_recipients back to buffer
|
||||
let dummy=input("Press ENTER to quit")
|
||||
let b:GPGRecipients=known_recipients
|
||||
endi
|
||||
|
||||
" built list of recipients
|
||||
|
Loading…
x
Reference in New Issue
Block a user