This commit is contained in:
liulu
2024-12-11 17:07:34 +08:00
parent 3dc061907f
commit 2250a6234b
8 changed files with 503 additions and 194 deletions
@@ -7,7 +7,9 @@ import com.sunyard.chsm.sdf.SdfApiService;
import com.sunyard.chsm.sdf.context.AlgId;
import com.sunyard.chsm.sdf.model.EccKey;
import com.sunyard.chsm.sdf.util.PaddingUtil;
import com.sunyard.chsm.utils.gm.BCSM3Utils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.function.Function;
@@ -17,9 +19,9 @@ import java.util.function.Function;
* @since 2024/12/10
*/
@Slf4j
@Service
public class LoadBalancedSdfApiService implements SdfApiService {
@Resource
private DeviceManager deviceManager;
@@ -100,26 +102,28 @@ public class LoadBalancedSdfApiService implements SdfApiService {
@Override
public byte[] calculateMAC(byte[] symKey, byte[] pucIv, byte[] pucData) {
return new byte[0];
return apply(s -> s.getSdfApiAdapter().calculateMAC(s.getSessionHandle(), symKey, AlgId.SGD_SM4_MAC, pucIv, pucData));
}
@Override
public byte[] hmac(byte[] key, byte[] srcData) {
return new byte[0];
return BCSM3Utils.hmac(key, srcData);
}
@Override
public byte[] hash(byte[] pucData) {
return new byte[0];
return apply(s -> s.getSdfApiAdapter().hashOperation(s.getSessionHandle(), AlgId.SGD_SM3, null, null, pucData));
}
@Override
public byte[] encryptByTMK(byte[] data) {
return new byte[0];
byte[] pad = PaddingUtil.PKCS7Unpadding(data);
return apply(s -> s.getSdfApiAdapter().symEncrypt(s.getSessionHandle(), s.getKeyHandle(), AlgId.SGD_SM4_CBC, new byte[8], pad));
}
@Override
public byte[] decryptByTMK(byte[] data) {
return new byte[0];
byte[] decrypt = apply(s -> s.getSdfApiAdapter().symDecrypt(s.getSessionHandle(), s.getKeyHandle(), AlgId.SGD_SM4_CBC, new byte[8], data));
return PaddingUtil.PKCS7Unpadding(decrypt);
}
}