diff --git a/jar.go b/jar.go index 51968fd..9dc4c42 100644 --- a/jar.go +++ b/jar.go @@ -7,56 +7,30 @@ import ( "archive/zip" "errors" "io" - "regexp" ) const indexPath = "index-v1.json" -var ( - sigRegex = regexp.MustCompile(`^META-INF/.*\.(DSA|EC|RSA)$`) - - ErrNoIndex = errors.New("no json index found inside jar") - ErrNoSigs = errors.New("no jar signatures found") - ErrTooManySigs = errors.New("multiple jar signatures found") -) - -func verifySignature(pubkey []byte, sig io.Reader) error { - // TODO: Implement - return nil -} +var ErrNoIndex = errors.New("no json index found inside jar") func LoadIndexJar(r io.ReaderAt, size int64, pubkey []byte) (*Index, error) { reader, err := zip.NewReader(r, size) if err != nil { return nil, err } - var index, sig io.ReadCloser + var index io.ReadCloser for _, f := range reader.File { if f.Name == indexPath { index, err = f.Open() if err != nil { return nil, err } - } else if sigRegex.MatchString(f.Name) { - if sig != nil { - return nil, ErrTooManySigs - } - sig, err = f.Open() - if err != nil { - return nil, err - } + break } } if index == nil { return nil, ErrNoIndex } defer index.Close() - if sig == nil { - return nil, ErrNoSigs - } - defer sig.Close() - if err := verifySignature(pubkey, sig); err != nil { - return nil, err - } return LoadIndexJSON(index) }