SM2 版本工具

This commit is contained in:
cheney
2026-05-14 17:31:43 +08:00
parent 3779a055e0
commit fc273376a7
11 changed files with 493 additions and 84 deletions
@@ -6,6 +6,9 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.security.KeyPair;
import java.util.Base64;
@RestController
@RequestMapping("/device")
public class DeviceActivationController {
@@ -24,8 +27,10 @@ public class DeviceActivationController {
String concatenatedParams = params.toConcatenatedString();
String calculatedHash = deviceActivationService.calculateSm3Hash(concatenatedParams);
String deviceActivationPublicKey = deviceActivationService.generateDeviceActivationPublicKey();
String deviceActivationResult = deviceActivationService.signWithSm2Pkcs1(calculatedHash, deviceActivationPublicKey);
KeyPair keyPair = deviceActivationService.generateDeviceActivationKeyPair();
String deviceActivationPublicKey = Base64.getEncoder().encodeToString(keyPair.getPublic().getEncoded());
String privateKeyBase64 = Base64.getEncoder().encodeToString(keyPair.getPrivate().getEncoded());
String deviceActivationResult = deviceActivationService.signWithSm2Pkcs1(calculatedHash, privateKeyBase64);
DeviceActivationResponse.Data data = new DeviceActivationResponse.Data();
data.setHash(calculatedHash);
@@ -63,6 +63,16 @@ public class DeviceActivationService {
}
}
public KeyPair generateDeviceActivationKeyPair() {
try {
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC", PROVIDER);
keyGen.initialize(256);
return keyGen.generateKeyPair();
} catch (Exception e) {
throw new RuntimeException("生成设备激活密钥对失败", e);
}
}
public KeyPair generateKeyPair() {
try {
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC", PROVIDER);