Verify file and reader

This commit is contained in:
Paul van Brouwershaven
2018-05-18 10:42:48 +02:00
parent ca3abfba98
commit 884b79e264

View File

@@ -2,12 +2,15 @@ package verify
import (
"bytes"
"crypto"
"crypto/x509"
"encoding/asn1"
"fmt"
"io"
"io/ioutil"
"log"
"os"
"runtime/debug"
"time"
"crypto"
@@ -47,8 +50,16 @@ type Certificate struct {
CRLEmbedded bool
}
func Verify(file *os.File) (apiResp *Response, err error) {
func File(file *os.File) (apiResp *Response, err error) {
finfo, _ := file.Stat()
file.Seek(0, 0)
return Reader(file, finfo.Size())
}
func Reader(file io.ReaderAt, size int64) (apiResp *Response, err error) {
defer func() {
log.Printf("%s\n", debug.Stack())
if r := recover(); r != nil {
apiResp = nil
err = fmt.Errorf("Failed to verify file (%v)", r)
@@ -56,11 +67,6 @@ func Verify(file *os.File) (apiResp *Response, err error) {
}()
apiResp = &Response{}
finfo, _ := file.Stat()
size := finfo.Size()
file.Seek(0, 0)
rdr, err := pdf.NewReader(file, size)
if err != nil {
return nil, fmt.Errorf("Failed to open file: %v", err)
@@ -146,8 +152,7 @@ func Verify(file *os.File) (apiResp *Response, err error) {
signer.TimeStamp, err = timestamp.Parse(attr.Value.Bytes)
if err != nil {
apiResp.Error = fmt.Sprintln("Failed to parse timestamp", err)
}
} else {
r := bytes.NewReader(s.EncryptedDigest)
h := crypto.SHA256.New()
b := make([]byte, 32)
@@ -168,6 +173,7 @@ func Verify(file *os.File) (apiResp *Response, err error) {
}
}
}
}
// Directory of certificates, including OCSP
//var ica *x509.Certificate