mirror of
https://github.com/blacktop/ipsw.git
synced 2026-06-07 12:27:36 +00:00
36 lines
594 B
Go
36 lines
594 B
Go
package aea
|
|
|
|
import (
|
|
"crypto/sha256"
|
|
"encoding/binary"
|
|
"io"
|
|
"os"
|
|
)
|
|
|
|
func ID(in string) ([32]byte, error) {
|
|
f, err := os.Open(in)
|
|
if err != nil {
|
|
return [32]byte{}, err
|
|
}
|
|
defer f.Close()
|
|
|
|
var header Header
|
|
if err := binary.Read(f, binary.LittleEndian, &header); err != nil {
|
|
return [32]byte{}, err
|
|
}
|
|
|
|
f.Seek(0, io.SeekStart) // rewind
|
|
|
|
data := make([]byte,
|
|
binary.Size(header)+
|
|
int(header.AuthDataLength)+
|
|
int(32)+ // main salt
|
|
binary.Size(encRootHeader{}),
|
|
)
|
|
if _, err := f.Read(data); err != nil {
|
|
return [32]byte{}, err
|
|
}
|
|
|
|
return sha256.Sum256(data), nil
|
|
}
|