Check private key token signatures

This commit is contained in:
Simon Ser 2021-11-23 12:33:33 +01:00
parent 5eadb35c67
commit 3c52837053
1 changed files with 9 additions and 2 deletions

View File

@ -1,6 +1,7 @@
package protonmail package protonmail
import ( import (
"bytes"
"encoding/base64" "encoding/base64"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
@ -273,8 +274,14 @@ func decryptPrivateKeyToken(key *PrivateKey, userKeyRing openpgp.EntityList) ([]
return nil, err return nil, err
} }
// TODO: check key.Signature b, err := ioutil.ReadAll(md.UnverifiedBody)
return ioutil.ReadAll(md.UnverifiedBody) if err != nil {
return nil, err
}
// TODO: check signer?
_, err = openpgp.CheckArmoredDetachedSignature(userKeyRing, bytes.NewReader(b), strings.NewReader(key.Signature), nil)
return b, err
} }
func unlockPrivateKey(key *PrivateKey, userKeyRing openpgp.EntityList, keySalt []byte, passphraseBytes []byte) (*openpgp.Entity, error) { func unlockPrivateKey(key *PrivateKey, userKeyRing openpgp.EntityList, keySalt []byte, passphraseBytes []byte) (*openpgp.Entity, error) {