@@ -3,50 +3,58 @@ package core
33import (
44 "bytes"
55 "fmt"
6- "github.com/jedisct1/go-minisign"
76 "os"
87 "strings"
8+
9+ "github.com/jedisct1/go-minisign"
910)
1011
11- func GetSignatureFile (binary string ) (string , error ) {
12- signatureFileSeparator := []byte {0x2D , 0x2D , 0x2D , 0x2D , 0x62 , 0x65 , 0x67 , 0x69 , 0x6E , 0x20 , 0x61 , 0x74 , 0x74 , 0x61 , 0x63 , 0x68 , 0x2D , 0x2D , 0x2D , 0x2D }
13- signatureFileEndSeparator := []byte {0x2D , 0x2D , 0x2D , 0x2D , 0x62 , 0x65 , 0x67 , 0x69 , 0x6E , 0x20 , 0x73 , 0x65 , 0x63 , 0x6F , 0x6E , 0x64 , 0x20 , 0x61 , 0x74 , 0x74 , 0x61 , 0x63 , 0x68 , 0x2D , 0x2D , 0x2D , 0x2D }
12+ var (
13+ signatureFileSeparator = []byte ("----begin attach----" )
14+ signatureFileEndSeparator = []byte ("----begin second attach----" )
15+ signatureHashSeparator = []byte ("----begin second attach----" )
16+ )
1417
18+ func GetSignatureFile (binary string ) (string , error ) {
1519 data , err := os .ReadFile (binary )
1620 if err != nil {
1721 return "" , err
1822 }
23+
1924 signatureFileIndex := bytes .LastIndex (data , signatureFileSeparator ) + len (signatureFileSeparator )
2025 signatureFileEndIndex := bytes .LastIndex (data , signatureFileEndSeparator ) + len (signatureFileEndSeparator )
2126 signatureFile := ""
27+
2228 for i := 0 ; i < signatureFileEndIndex - signatureFileIndex - len (signatureFileEndSeparator ); i ++ {
2329 signatureFile = signatureFile + string (data [signatureFileIndex + i ])
2430 }
31+
2532 if strings .TrimSpace (signatureFile ) == "" {
2633 fmt .Println ("NO SIGNATURE FILE" )
2734 return "" , fmt .Errorf ("no signature file found" )
2835 }
36+
2937 return strings .Replace (signatureFile , "----begin second attach---" , "" , 1 ), nil
3038}
3139
3240func GetSignatureHash (binary string ) (string , error ) {
33- signatureHashSeparator := []byte {0x2D , 0x2D , 0x2D , 0x2D , 0x62 , 0x65 , 0x67 , 0x69 , 0x6E , 0x20 , 0x73 , 0x65 , 0x63 , 0x6F , 0x6E , 0x64 , 0x20 , 0x61 , 0x74 , 0x74 , 0x61 , 0x63 , 0x68 , 0x2D , 0x2D , 0x2D , 0x2D }
34-
3541 data , err := os .ReadFile (binary )
3642 if err != nil {
3743 return "" , err
3844 }
39- signatureHashIndex := bytes .LastIndex (data , signatureHashSeparator ) + len (signatureHashSeparator )
4045
46+ signatureHashIndex := bytes .LastIndex (data , signatureHashSeparator ) + len (signatureHashSeparator )
4147 signatureHash := ""
4248
4349 for i := 0 ; i < len (data )- signatureHashIndex ; i ++ {
4450 signatureHash = signatureHash + string (data [signatureHashIndex + i ])
4551 }
52+
4653 if strings .TrimSpace (signatureHash ) == "" {
4754 fmt .Println ("NO SIGNATURE HASH" )
4855 return "" , fmt .Errorf ("no signature hash found" )
4956 }
57+
5058 return strings .Replace (signatureHash , "----begin attach---" , "" , 1 ), nil
5159}
5260
0 commit comments