init: v1.0.0

This commit is contained in:
yaole
2026-05-27 23:03:00 +08:00
commit 8d97f750eb
466 changed files with 80067 additions and 0 deletions
+88
View File
@@ -0,0 +1,88 @@
package sdf
import (
"encoding/binary"
"fmt"
"xdx.jelly/xgcl/api/common"
)
type DeviceInfo struct {
IssuerName [40]byte
DeviceName [16]byte
DeviceSerial [16]byte
DeviceVersion uint32
StandardVersion uint32
AsymAlgAbility [2]uint32
SymAlgAbility uint32
HashAlgAbility uint32
BufferSize uint32
}
func (d *DeviceInfo) Size() int {
return 40 + 16 + 16 + 4*7
}
func strlen(s []byte) int {
for i, c := range s {
if c == 0 {
return i
}
}
return len(s)
}
func (d *DeviceInfo) String() string {
return fmt.Sprintf("IssuerName: %s\nDeviceName: %s\nDeviceSerial: %s\nDeviceVersion: 0x%08x\nStandardVersion: 0x%08x\nAsymAlgAbility: 0x%08x%08x\nSymAlgAbility 0x%08x\nHashAlgAbility 0x%08x\nBufferSize: 0x%08x",
string(d.IssuerName[:strlen(d.IssuerName[:])]),
string(d.DeviceName[:strlen(d.DeviceName[:])]),
string(d.DeviceSerial[:strlen(d.DeviceSerial[:])]),
d.DeviceVersion,
d.StandardVersion,
d.AsymAlgAbility[0],
d.AsymAlgAbility[1],
d.SymAlgAbility,
d.HashAlgAbility,
d.BufferSize)
}
func (d *DeviceInfo) Unmarshal(data []byte) error {
fmt.Println(data)
if len(data) < d.Size() {
return common.SDR_INARGERR
}
n := copy(d.IssuerName[:], data)
data = data[n:]
n = copy(d.DeviceName[:], data)
data = data[n:]
n = copy(d.DeviceSerial[:], data)
data = data[n:]
d.DeviceVersion = binary.LittleEndian.Uint32(data)
data = data[4:]
d.StandardVersion = binary.LittleEndian.Uint32(data)
data = data[4:]
d.AsymAlgAbility[0] = binary.LittleEndian.Uint32(data)
data = data[4:]
d.AsymAlgAbility[1] = binary.LittleEndian.Uint32(data)
data = data[4:]
d.SymAlgAbility = binary.LittleEndian.Uint32(data)
data = data[4:]
d.HashAlgAbility = binary.LittleEndian.Uint32(data)
data = data[4:]
d.BufferSize = binary.LittleEndian.Uint32(data)
return nil
}
var (
devInfo = &DeviceInfo{
IssuerName: [40]byte{'G', 'o', 'M', 'a', 'i', 'n'},
DeviceName: [16]byte{'G', 'C', 'L'},
DeviceSerial: [16]byte{'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'},
DeviceVersion: 1,
StandardVersion: 1,
AsymAlgAbility: [2]uint32{10000, 10000},
SymAlgAbility: 10000,
HashAlgAbility: 10000,
BufferSize: 1024, // 最大随机数长度
}
)