升级异常机制
This commit is contained in:
parent
905f6348eb
commit
06298d9fe4
12
go.mod
12
go.mod
@ -3,8 +3,8 @@ module apigo.cc/gojs/util
|
||||
go 1.24.0
|
||||
|
||||
require (
|
||||
apigo.cc/gojs v0.0.30
|
||||
apigo.cc/gojs/console v0.0.3
|
||||
apigo.cc/gojs v0.0.32
|
||||
apigo.cc/gojs/console v0.0.4
|
||||
github.com/ZZMarquis/gm v1.3.2
|
||||
github.com/emmansun/gmsm v0.40.0
|
||||
github.com/obscuren/ecies v0.0.0-20150213224233-7c0f4a9b18d9
|
||||
@ -18,10 +18,10 @@ require (
|
||||
github.com/go-sourcemap/sourcemap v2.1.4+incompatible // indirect
|
||||
github.com/google/pprof v0.0.0-20250903194437-c28834ac2320 // indirect
|
||||
github.com/ssgo/config v1.7.10 // indirect
|
||||
github.com/ssgo/log v1.7.9 // indirect
|
||||
github.com/ssgo/log v1.7.10 // indirect
|
||||
github.com/ssgo/standard v1.7.7 // indirect
|
||||
github.com/ssgo/tool v0.4.29 // indirect
|
||||
golang.org/x/crypto v0.43.0 // indirect
|
||||
golang.org/x/sys v0.38.0 // indirect
|
||||
golang.org/x/text v0.31.0 // indirect
|
||||
golang.org/x/crypto v0.46.0 // indirect
|
||||
golang.org/x/sys v0.39.0 // indirect
|
||||
golang.org/x/text v0.32.0 // indirect
|
||||
)
|
||||
|
||||
240
util.go
240
util.go
@ -48,7 +48,10 @@ func init() {
|
||||
if r, err := json.Marshal(gojs.FixObject(args.Arguments[0].Export())); err == nil {
|
||||
return vm.ToValue(string(r))
|
||||
} else {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
},
|
||||
"jsonP": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||
@ -61,7 +64,10 @@ func init() {
|
||||
return vm.ToValue(string(r))
|
||||
}
|
||||
} else {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
},
|
||||
"unJson": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||
@ -70,7 +76,10 @@ func init() {
|
||||
if err := json.Unmarshal(u.Bytes(args.Arguments[0].Export()), &r); err == nil {
|
||||
return vm.ToValue(r)
|
||||
} else {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
},
|
||||
"yaml": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||
@ -78,7 +87,10 @@ func init() {
|
||||
if r, err := yaml.Marshal(gojs.FixObject(args.Arguments[0].Export())); err == nil {
|
||||
return vm.ToValue(string(r))
|
||||
} else {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
},
|
||||
"unYaml": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||
@ -87,7 +99,10 @@ func init() {
|
||||
if err := yaml.Unmarshal(u.Bytes(args.Arguments[0].Export()), &r); err == nil {
|
||||
return vm.ToValue(r)
|
||||
} else {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
},
|
||||
"base64": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||
@ -115,7 +130,10 @@ func init() {
|
||||
if r, err := hex.DecodeString(args.Str(0)); err == nil {
|
||||
return vm.ToValue(r)
|
||||
} else {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
},
|
||||
"aes": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||
@ -123,7 +141,10 @@ func init() {
|
||||
if r, err := u.EncryptAesBytes(u.Bytes(args.Arguments[0].Export()), u.Bytes(args.Arguments[1].Export()), u.Bytes(args.Arguments[2].Export())); err == nil {
|
||||
return vm.ToValue(r)
|
||||
} else {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
},
|
||||
"unAes": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||
@ -131,7 +152,10 @@ func init() {
|
||||
if r, err := u.DecryptAesBytes(u.Bytes(args.Arguments[0].Export()), u.Bytes(args.Arguments[1].Export()), u.Bytes(args.Arguments[2].Export())); err == nil {
|
||||
return vm.ToValue(r)
|
||||
} else {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
},
|
||||
"sm4": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||
@ -139,7 +163,10 @@ func init() {
|
||||
if r, err := sm4.CBCEncrypt(u.Bytes(args.Arguments[1].Export())[0:16], u.Bytes(args.Arguments[2].Export())[0:16], util.PKCS5Padding(u.Bytes(args.Arguments[0].Export()), 16)); err == nil {
|
||||
return vm.ToValue(r)
|
||||
} else {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
},
|
||||
"unSM4": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||
@ -152,7 +179,10 @@ func init() {
|
||||
}
|
||||
return vm.ToValue(r)
|
||||
} else {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
},
|
||||
"genECDSA": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||
@ -168,7 +198,10 @@ func init() {
|
||||
}
|
||||
pri, err := ecdsa.GenerateKey(curve, u.GlobalRand2)
|
||||
if err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
var buf bytes.Buffer
|
||||
buf.WriteByte(byte(len(pri.X.Bytes())))
|
||||
@ -181,7 +214,10 @@ func init() {
|
||||
priKey := makeECDSAPriKey(args.Bytes(0))
|
||||
priBytes, err := x509.MarshalPKCS8PrivateKey(priKey)
|
||||
if err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
pemBytes := pem.EncodeToMemory(&pem.Block{
|
||||
Type: "PRIVATE KEY",
|
||||
@ -194,7 +230,10 @@ func init() {
|
||||
pubKey := makeECDSAPubKey(args.Bytes(0))
|
||||
pubBytes, err := x509.MarshalPKIXPublicKey(pubKey)
|
||||
if err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
pemBytes := pem.EncodeToMemory(&pem.Block{
|
||||
Type: "PUBLIC KEY",
|
||||
@ -210,40 +249,61 @@ func init() {
|
||||
if strings.Contains(keyText, "-----BEGIN PRIVATE KEY-----") {
|
||||
keyType = "private"
|
||||
if block, _ := pem.Decode([]byte(keyText)); block == nil {
|
||||
panic(vm.NewGoError(gojs.Err("bad private pem key")))
|
||||
// panic(vm.NewGoError(gojs.Err("bad private pem key")))
|
||||
vm.SetData("_lastError", gojs.Err("bad private pem key"))
|
||||
gojs.GetLogger(vm).Error("bad private pem key")
|
||||
return nil
|
||||
} else {
|
||||
keyBytes = block.Bytes
|
||||
}
|
||||
} else if strings.Contains(keyText, "-----BEGIN PUBLIC KEY-----") {
|
||||
keyType = "public"
|
||||
if block, _ := pem.Decode([]byte(keyText)); block == nil {
|
||||
panic(vm.NewGoError(gojs.Err("bad public pem key")))
|
||||
// panic(vm.NewGoError(gojs.Err("bad public pem key")))
|
||||
vm.SetData("_lastError", gojs.Err("bad public pem key"))
|
||||
gojs.GetLogger(vm).Error("bad public pem key")
|
||||
return nil
|
||||
} else {
|
||||
keyBytes = block.Bytes
|
||||
}
|
||||
} else {
|
||||
var err error
|
||||
if keyBytes, err = base64.StdEncoding.DecodeString(keyText); err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
if keyType == "private" {
|
||||
if priKey, err := x509.ParsePKCS8PrivateKey(keyBytes); err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
} else {
|
||||
if ecdsaPriKey, ok := priKey.(*ecdsa.PrivateKey); !ok {
|
||||
panic(vm.NewGoError(gojs.Err("bad private key")))
|
||||
// panic(vm.NewGoError(gojs.Err("bad private key")))
|
||||
vm.SetData("_lastError", gojs.Err("bad private key"))
|
||||
gojs.GetLogger(vm).Error("bad private key")
|
||||
return nil
|
||||
} else {
|
||||
return vm.ToValue(ecdsaPriKey.D.Bytes())
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if pubKey, err := x509.ParsePKIXPublicKey(keyBytes); err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
} else {
|
||||
if ecdsaPubKey, ok := pubKey.(*ecdsa.PublicKey); !ok {
|
||||
panic(vm.NewGoError(gojs.Err("bad public key")))
|
||||
// panic(vm.NewGoError(gojs.Err("bad public key")))
|
||||
vm.SetData("_lastError", gojs.Err("bad public key"))
|
||||
gojs.GetLogger(vm).Error("bad public key")
|
||||
return nil
|
||||
} else {
|
||||
var buf bytes.Buffer
|
||||
buf.WriteByte(byte(len(ecdsaPubKey.X.Bytes())))
|
||||
@ -260,7 +320,10 @@ func init() {
|
||||
priKey := makeECDSAPriKey(args.Bytes(1))
|
||||
r, s, err := ecdsa.Sign(u.GlobalRand1, priKey, u.Sha256(data))
|
||||
if err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
var buf bytes.Buffer
|
||||
buf.WriteByte(byte(len(r.Bytes())))
|
||||
@ -286,7 +349,10 @@ func init() {
|
||||
pubKey := makeECDSAPubKey(args.Bytes(1))
|
||||
eciesPubKey := ecies.ImportECDSAPublic(pubKey)
|
||||
if r, err := ecies.Encrypt(u.GlobalRand1, eciesPubKey, data, nil, nil); err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
} else {
|
||||
return vm.ToValue(r)
|
||||
}
|
||||
@ -297,7 +363,10 @@ func init() {
|
||||
priKey := makeECDSAPriKey(args.Bytes(1))
|
||||
eciesPriKey := ecies.ImportECDSA(priKey)
|
||||
if r, err := eciesPriKey.Decrypt(u.GlobalRand1, data, nil, nil); err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
} else {
|
||||
return vm.ToValue(r)
|
||||
}
|
||||
@ -310,7 +379,10 @@ func init() {
|
||||
buf.Write(pri.Y.Bytes())
|
||||
return vm.ToValue([][]byte{pri.D.Bytes(), buf.Bytes()})
|
||||
} else {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
},
|
||||
"exportSM2PrivateKey": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||
@ -318,7 +390,10 @@ func init() {
|
||||
priKey := makePriKey(args.Bytes(0), sm2.P256())
|
||||
priBytes, err := smx509.MarshalECPrivateKey(priKey)
|
||||
if err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
pemBytes := pem.EncodeToMemory(&pem.Block{
|
||||
Type: "PRIVATE KEY",
|
||||
@ -331,7 +406,10 @@ func init() {
|
||||
pubKey := makePubKey(args.Bytes(0), sm2.P256())
|
||||
pubBytes, err := smx509.MarshalPKIXPublicKey(pubKey)
|
||||
if err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
pemBytes := pem.EncodeToMemory(&pem.Block{
|
||||
Type: "PUBLIC KEY",
|
||||
@ -347,36 +425,54 @@ func init() {
|
||||
if strings.Contains(keyText, "-----BEGIN PRIVATE KEY-----") {
|
||||
keyType = "private"
|
||||
if block, _ := pem.Decode([]byte(keyText)); block == nil {
|
||||
panic(vm.NewGoError(gojs.Err("bad private pem key")))
|
||||
// panic(vm.NewGoError(gojs.Err("bad private pem key")))
|
||||
vm.SetData("_lastError", gojs.Err("bad private pem key"))
|
||||
gojs.GetLogger(vm).Error("bad private pem key")
|
||||
return nil
|
||||
} else {
|
||||
keyBytes = block.Bytes
|
||||
}
|
||||
} else if strings.Contains(keyText, "-----BEGIN PUBLIC KEY-----") {
|
||||
keyType = "public"
|
||||
if block, _ := pem.Decode([]byte(keyText)); block == nil {
|
||||
panic(vm.NewGoError(gojs.Err("bad public pem key")))
|
||||
// panic(vm.NewGoError(gojs.Err("bad public pem key")))
|
||||
vm.SetData("_lastError", gojs.Err("bad public pem key"))
|
||||
gojs.GetLogger(vm).Error("bad public pem key")
|
||||
return nil
|
||||
} else {
|
||||
keyBytes = block.Bytes
|
||||
}
|
||||
} else {
|
||||
var err error
|
||||
if keyBytes, err = base64.StdEncoding.DecodeString(keyText); err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
if keyType == "private" {
|
||||
if priKey, err := smx509.ParseECPrivateKey(keyBytes); err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
} else {
|
||||
return vm.ToValue(priKey.D.Bytes())
|
||||
}
|
||||
} else {
|
||||
if pubKey, err := smx509.ParsePKIXPublicKey(keyBytes); err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
} else {
|
||||
if sm2PubKey, ok := pubKey.(*ecdsa.PublicKey); !ok {
|
||||
panic(vm.NewGoError(gojs.Err("bad public key")))
|
||||
// panic(vm.NewGoError(gojs.Err("bad public key")))
|
||||
vm.SetData("_lastError", gojs.Err("bad public key"))
|
||||
gojs.GetLogger(vm).Error("bad public key")
|
||||
return nil
|
||||
} else {
|
||||
var buf bytes.Buffer
|
||||
buf.WriteByte(byte(len(sm2PubKey.X.Bytes())))
|
||||
@ -398,7 +494,10 @@ func init() {
|
||||
buf.Write(s.Bytes())
|
||||
return vm.ToValue(buf.Bytes())
|
||||
} else {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
},
|
||||
"verifySM2": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||
@ -420,7 +519,10 @@ func init() {
|
||||
if r, err := sm2.Encrypt(u.GlobalRand1, pubKey, data, nil); err == nil {
|
||||
return vm.ToValue(r)
|
||||
} else {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
},
|
||||
"decryptSM2": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||
@ -430,7 +532,10 @@ func init() {
|
||||
if r, err := sm2.Decrypt(&sm2.PrivateKey{PrivateKey: *priKey}, data); err == nil {
|
||||
return vm.ToValue(r)
|
||||
} else {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
},
|
||||
|
||||
@ -442,7 +547,10 @@ func init() {
|
||||
}
|
||||
key, err := rsa.GenerateKey(rand.Reader, size)
|
||||
if err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
priBytes := x509.MarshalPKCS1PrivateKey(key)
|
||||
pubBytes := x509.MarshalPKCS1PublicKey(&key.PublicKey)
|
||||
@ -476,33 +584,48 @@ func init() {
|
||||
if strings.Contains(keyText, "-----BEGIN RSA PRIVATE KEY-----") {
|
||||
keyType = "private"
|
||||
if block, _ := pem.Decode([]byte(keyText)); block == nil {
|
||||
panic(vm.NewGoError(gojs.Err("bad private pem key")))
|
||||
// panic(vm.NewGoError(gojs.Err("bad private pem key")))
|
||||
vm.SetData("_lastError", gojs.Err("bad private pem key"))
|
||||
gojs.GetLogger(vm).Error("bad private pem key")
|
||||
return nil
|
||||
} else {
|
||||
keyBytes = block.Bytes
|
||||
}
|
||||
} else if strings.Contains(keyText, "-----BEGIN RSA PUBLIC KEY-----") {
|
||||
keyType = "public"
|
||||
if block, _ := pem.Decode([]byte(keyText)); block == nil {
|
||||
panic(vm.NewGoError(gojs.Err("bad public pem key")))
|
||||
// panic(vm.NewGoError(gojs.Err("bad public pem key")))
|
||||
vm.SetData("_lastError", gojs.Err("bad public pem key"))
|
||||
gojs.GetLogger(vm).Error("bad public pem key")
|
||||
return nil
|
||||
} else {
|
||||
keyBytes = block.Bytes
|
||||
}
|
||||
} else {
|
||||
var err error
|
||||
if keyBytes, err = base64.StdEncoding.DecodeString(keyText); err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
if keyType == "private" {
|
||||
if priKey, err := x509.ParsePKCS1PrivateKey(keyBytes); err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
} else {
|
||||
return vm.ToValue(x509.MarshalPKCS1PrivateKey(priKey))
|
||||
}
|
||||
} else {
|
||||
if pubKey, err := x509.ParsePKCS1PublicKey(keyBytes); err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
} else {
|
||||
return vm.ToValue(x509.MarshalPKCS1PublicKey(pubKey))
|
||||
}
|
||||
@ -514,7 +637,10 @@ func init() {
|
||||
priKey := makeRSAPriKey(args.Bytes(1))
|
||||
signature, err := rsa.SignPKCS1v15(rand.Reader, priKey, crypto.SHA256, u.Sha256(data))
|
||||
if err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
return vm.ToValue(signature)
|
||||
},
|
||||
@ -532,7 +658,10 @@ func init() {
|
||||
pubKey := makeRSAPubKey(args.Bytes(1))
|
||||
encryptedData, err := rsa.EncryptOAEP(sha256.New(), rand.Reader, pubKey, data, nil)
|
||||
if err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
return vm.ToValue(encryptedData)
|
||||
},
|
||||
@ -542,7 +671,10 @@ func init() {
|
||||
priKey := makeRSAPriKey(args.Bytes(1))
|
||||
decryptedData, err := rsa.DecryptOAEP(sha256.New(), rand.Reader, priKey, data, nil)
|
||||
if err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
return vm.ToValue(decryptedData)
|
||||
},
|
||||
@ -552,7 +684,10 @@ func init() {
|
||||
if r, err := u.Gzip(u.Bytes(args.Arguments[0].Export())); err == nil {
|
||||
return vm.ToValue(r)
|
||||
} else {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
},
|
||||
"gunzip": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||
@ -560,7 +695,10 @@ func init() {
|
||||
if r, err := u.Gunzip(u.Bytes(args.Arguments[0].Export())); err == nil {
|
||||
return vm.ToValue(r)
|
||||
} else {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
},
|
||||
"uniqueId": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||
@ -743,7 +881,10 @@ func init() {
|
||||
err = tpl.Execute(buf, args.Arguments[1].Export())
|
||||
}
|
||||
if err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
return vm.ToValue(buf.String())
|
||||
},
|
||||
@ -799,7 +940,10 @@ func init() {
|
||||
args := gojs.MakeArgs(&argsIn, vm).Check(1)
|
||||
r, err := filepath.Abs(args.Str(0))
|
||||
if err != nil {
|
||||
panic(vm.NewGoError(err))
|
||||
// panic(vm.NewGoError(err))
|
||||
vm.SetData("_lastError", err)
|
||||
gojs.GetLogger(vm).Error(err.Error())
|
||||
return nil
|
||||
}
|
||||
return vm.ToValue(r)
|
||||
},
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user