update at 2023/08/14

This commit is contained in:
2023-08-14 21:41:37 +08:00
parent a039a664f1
commit 44e8cbee2c
255 changed files with 20426 additions and 233 deletions

BIN
tools/cmsign/cmsign Normal file

Binary file not shown.

BIN
tools/cmsign/cmsign.exe Normal file

Binary file not shown.

114
tools/cmsign/cmsign.go Normal file
View File

@@ -0,0 +1,114 @@
package main
import (
"crypto"
"crypto/rand"
"crypto/rsa"
"crypto/sha256"
"crypto/x509"
"encoding/base64"
"encoding/pem"
"flag"
"fmt"
"os"
)
var UserName *string
func init() {
//cfile := flag.String("c", defaultConfigFile, "config file")
//pv := flag.Bool("v", false, "print version")
//ph := flag.Bool("h", false, "print help")
UserName = flag.String("u", "omc", "user name")
flag.Parse()
// if *pv {
// os.Exit(0)
// }
// if *ph {
// flag.Usage()
// os.Exit(0)
// }
//ReadConfig(*cfile)
}
func main() {
// 假设你已经有了CMCA证书私钥和userName登录用户名
privateKeyBytes, err := os.ReadFile("./private_key.pem")
if err != nil {
fmt.Println("Failed to read private key file:", err)
return
}
//userName := "omc"
// 解析私钥
privateKey, err := parsePrivateKey(privateKeyBytes)
if err != nil {
fmt.Println("Failed to parse private key:", err)
return
}
// 对用户名进行签名
signature, err := sign(privateKey, *UserName)
if err != nil {
fmt.Println("Failed to sign username:", err)
return
}
// 将签名按Base64编码格式化输出
signatureBase64 := base64.StdEncoding.EncodeToString(signature)
fmt.Println("Signature:", signatureBase64)
}
// 解析私钥
// func parsePrivateKey(privateKeyBytes []byte) (*rsa.PrivateKey, error) {
// privateKey, err := parsePrivateKey(privateKeyBytes)
// if err != nil {
// return nil, err
// }
// return privateKey, nil
// }
// 解析私钥
func parsePrivateKey(privateKeyBytes []byte) (*rsa.PrivateKey, error) {
block, _ := pem.Decode(privateKeyBytes)
if block == nil {
return nil, fmt.Errorf("failed to decode private key")
}
//privateKey, err := x509.ParsePKCS8PrivateKey(block.Bytes)
privateKey, err := x509.ParsePKCS1PrivateKey(block.Bytes)
if err != nil {
return nil, err
}
// rsaPrivateKey, ok := privateKey.(*rsa.PrivateKey)
// if !ok {
// return nil, fmt.Errorf("private key is not RSA")
// }
return privateKey, nil
}
// 对数据进行签名
func sign(privateKey *rsa.PrivateKey, data string) ([]byte, error) {
hashed := sha256.Sum256([]byte(data))
signature, err := rsa.SignPKCS1v15(rand.Reader, privateKey, crypto.SHA256, hashed[:])
if err != nil {
return nil, err
}
return signature, nil
}
func readPrivateKey() {
// 读取私钥文件
privateKeyBytes, err := os.ReadFile("./private_key.pem")
if err != nil {
fmt.Println("Failed to read private key file:", err)
return
}
// 输出私钥内容
fmt.Println(string(privateKeyBytes))
}

View File

@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAlE3BYk9Rk2avUTik7lpuiHxbYTusrLYRCnr8JICRg0QsBfiu
q8d4+4s0w3y5F7puTj23Hf8ohAeNGK6vV9nJF9utMRvT4w5hlGqvKubM2vORoNoa
1usIixfcvMmCt/7++9endMurLY7e9aR+eeEffJtMx5G5JqxRGoFkeXBKFTOjD2ad
sHQ5zhQQUYgdQa2xzKQBYiierKKptcoVMAnnkfx7NPSRfCnzhYVeKgBFbxNXL4h7
nAhLywWhusQc2yr2Fdojj7urtqPNfMKYapkmWKI9/zuPxMlYL49VXUqppE0rnYoi
ISwGvP9iSq1tb+8BUI0ZMDcHX4elEeZYiFMJOwIDAQABAoIBAFVJVhIsXVRwdBg4
hBkS5ogVRBPp1obIeYpWadSwH36m4M5aUlE1eKzoRGK7wlIUA8V5FmroxysOkKUG
KI5UD6Jp0fLw9uyX46QPqkb4zgyIkFI5u7+nEJW1Flt3Y3Ze7dJ1FbdEPWAIzs3j
WFzNC2eEhCYs9pZ3+HhOuzJfUitYU6ts83tazSms+7E027e/v2ubtYOzluEoj4YK
MM+ocqJOlXUOhyTATDaLs4fM567bwwFeriODQqmMIhXLf3HiBPfPYhoAlwPUV51L
bAjIPwG2/jy0yXPenYOUqSMP1i+XkyTL4eVqOLLQUI+BsEaToS8M7Lf4KRQE0vQm
uAkEA9ECgYEAxCsKXtkYXrma8UziSJgQBj88TfACyuYZBPkpBFJhffPVOreYzqmn
gsE38oHlLhCrezsxvScivS/Cwt7kgBTE9r6xmH8y2f0P3PNmtazQCqovG1gsNZ1t
9PZQmxbVUfx/7KRJ1Q5zX3x5C0P2c6XYv/1h/SQQ8PYXDhRxWZFVSikCgYEAwYlt
AoP8j6yHDMk10vJd0fKT1lztcHcQLvH3HQn2kHci2GCxySvcac49hpXTDeNdUzcQ
I9UWo1MggNojME3WHUTiZD5DYUzuNUBTkc0kMHWy79/YNAzvF9312MSyJ0NlytBQ
ISh0z0sPSxDjW+XCi/8LGu1rrremBqvh0rNIrMMCgYEAt+C8VNHcZRZHpX3y8icP
hjuKFGgwxe3Pb/j5uKJb3ktMCUEFjFo8uXTSM5AMuhRIGTgQVIS1rG5zemSh/Wj6
g2uWXyKEEQ+D6hGBqjP1wrlpdJE+x3btFdw5DFbn2HT9mF0bFAn6nXu4npWzEw5X
UQd67WT8OFIEpF8HLPTs5JkCgYBQlL6dmITU8Vm9mh1d+mnT23NwgnqeJATJ9xcT
sS1HE0Of4grEHw4Dw8pcOg+JLcyStE91C+kEEb1ryOdz2kS3JRI5+K6nWZeo9mKV
R1u1DZx2QbZMXcJDJriRC7y9mlNMsZVbaPPRx4fTknGHts9c6NEf4hC+y1pGVtSM
nPc6bwKBgQCrtb6srow9o0acH7mMmieDuqvT8DQ6rHWoizgneZTuvIo6SPO6nRnR
jfgfQkqr9IiLh9awSblQEN9fnddog7a1yS4cUZueiP5dmtFvp4B9Scnt+BoHpOLk
rrU2i7grAye4Cd003+pqhSERGCKSzb3fTSYiMypKsxeH2bs8nrRu2A==
-----END RSA PRIVATE KEY-----