Fix compilation for gomobile iOS (#17)
* Move signature verification to errors * Move cleartext messages to ClearTextMessage struct * Fix documentation
This commit is contained in:
parent
552ce9554f
commit
9195b9ae92
16 changed files with 311 additions and 296 deletions
|
|
@ -1,10 +1,8 @@
|
|||
package helper
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"strings"
|
||||
|
||||
"github.com/ProtonMail/gopenpgp/armor"
|
||||
"github.com/ProtonMail/gopenpgp/crypto"
|
||||
"github.com/ProtonMail/gopenpgp/internal"
|
||||
)
|
||||
|
|
@ -47,28 +45,24 @@ func SignCleartextMessage(keyRing *crypto.KeyRing, text string) (string, error)
|
|||
return "", err
|
||||
}
|
||||
|
||||
return armor.ArmorClearSignedMessage(message.GetBinary(), signature.GetBinary())
|
||||
return crypto.NewClearTextMessage(message.GetBinary(), signature.GetBinary()).GetArmored()
|
||||
}
|
||||
|
||||
// VerifyCleartextMessage verifies PGP-compliant armored signed plain text given the public keyring
|
||||
// and returns the text or err if the verification fails
|
||||
func VerifyCleartextMessage(keyRing *crypto.KeyRing, armored string, verifyTime int64) (string, error) {
|
||||
text, signatureData, err := armor.ReadClearSignedMessage(armored)
|
||||
clearTextMessage, err := crypto.NewClearTextMessageFromArmored(armored)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
message := crypto.NewPlainMessageFromString(text)
|
||||
signature := crypto.NewPGPSignature(signatureData)
|
||||
ver, err := keyRing.VerifyDetached(message, signature, verifyTime)
|
||||
message := crypto.NewPlainMessageFromString(clearTextMessage.GetString())
|
||||
signature := crypto.NewPGPSignature(clearTextMessage.GetSignature())
|
||||
err = keyRing.VerifyDetached(message, signature, verifyTime)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
if !ver.IsValid() {
|
||||
return "", errors.New("gopenpgp: unable to verify attachment")
|
||||
}
|
||||
|
||||
return message.GetString(), nil
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue