Refactor out IsClearSigned to separate method. #71

This commit is contained in:
Andrey Smirnov
2015-03-13 18:42:34 +03:00
parent 9e39dbf81e
commit 8e20daa927
3 changed files with 26 additions and 6 deletions
+18
View File
@@ -1,6 +1,7 @@
package utils
import (
"bufio"
"bytes"
"fmt"
"io"
@@ -28,6 +29,7 @@ type Verifier interface {
InitKeyring() error
AddKeyring(keyring string)
VerifyDetachedSignature(signature, cleartext io.Reader) error
IsClearSigned(clearsigned io.Reader) (bool, error)
VerifyClearsigned(clearsigned io.Reader) error
ExtractClearsigned(clearsigned io.Reader) (text *os.File, err error)
}
@@ -257,6 +259,22 @@ func (g *GpgVerifier) VerifyDetachedSignature(signature, cleartext io.Reader) er
return g.runGpgv(args, "detached signature")
}
// IsClearSigned returns true if file contains signature
func (g *GpgVerifier) IsClearSigned(clearsigned io.Reader) (bool, error) {
scanner := bufio.NewScanner(clearsigned)
for scanner.Scan() {
if strings.Index(scanner.Text(), "BEGIN PGP SIGN") != -1 {
return true, nil
}
}
if err := scanner.Err(); err != nil {
return false, err
}
return false, nil
}
// VerifyClearsigned verifies clearsigned file using gpgv
func (g *GpgVerifier) VerifyClearsigned(clearsigned io.Reader) error {
args := g.argsKeyrings()