syntax = "proto3"; package AWSM; message Hash { bytes SourceData = 1; int32 SourceDataLen = 2; bytes HashData = 3; int32 HashDataLen = 4; bytes EccPublickey = 5; int32 ReturnValue = 6; } message Rand { bytes ucRandom = 1; int32 ulRandomLen = 2; int32 ReturnValue = 3; } message SignatureByIntPrikey { bytes SignData = 1; int32 SignDataLen = 2; bytes EccSignBlobData = 3; int32 EccSignBlobDatalen = 4; int32 ReturnValue = 5; } message SignatureByExtPrikey { bytes EccPrikey = 1; bytes SignData = 2; int32 SignDataLen = 3; bytes EccSignBlobData = 4; int32 EccSignBlobDataLen = 5; int32 ReturnValue = 6; } message VerifySignature { bytes EccPublickey = 1; bytes SignatureData = 2; int32 SignDataLen = 3; bytes EccSignBlobData = 4; int32 EccSignBlobDataLen = 5; int32 ReturnValue = 6; } message SM2EncryptByExtPubKey { bytes EPublickey = 1; bytes InData = 2; int32 InDataLen = 3; bytes ECCCIPPHERData = 4; int32 ECCCIPPHERDataLen = 5; int32 ReturnValue = 6; } message SM2DecryptByExtPrikey { bytes EPrikey = 1; bytes ECCCIPPHERData = 2; int32 ECCCIPPHERDataLen = 3; bytes OutData = 4; int32 OutDataLen = 5; int32 ReturnValue = 6; } message SM2DecryptByIntPrikey { bytes ECCCIPPHERData = 1; int32 ECCCIPPHERDataLen = 2; bytes OutData = 3; int32 OutDataLen = 4; int32 ReturnValue = 5; } message SM2DecryptByIntCryptPrikey { bytes ECCCIPPHERData = 1; int32 ECCCIPPHERDataLen = 2; bytes OutData = 3; int32 OutDataLen = 4; int32 ReturnValue = 5; } message SM1Encrypt { int32 AlgMode = 1; bytes pIv = 2; bytes Key = 3; int32 KeyLen = 4; bytes InData = 5; int32 InDataLen = 6; bytes OutData = 7; int32 OutDataLen = 8; int32 ReturnValue = 9; } message SM1Decrypt { int32 AlgMode = 1; bytes pIv = 2; bytes Key = 3; int32 KeyLen = 4; bytes InData = 5; int32 InDataLen = 6; bytes OutData = 7; int32 OutDataLen = 8; int32 ReturnValue = 9; } message SM4Encrypt { int32 AlgMode = 1; bytes pIv = 2; bytes Key = 3; int32 KeyLen = 4; bytes InData = 5; int32 InDataLen = 6; bytes OutData = 7; int32 OutDataLen = 8; int32 ReturnValue = 9; } message SM4Decrypt { int32 AlgMode = 1; bytes pIv = 2; bytes Key = 3; int32 KeyLen = 4; bytes InData = 5; int32 InDataLen = 6; bytes OutData = 7; int32 OutDataLen = 8; int32 ReturnValue = 9; } message GenerateECCKeyPair { int32 ReturnValue = 1; } message ExportPubkey { int32 KeyPairtype = 1; bytes Publickey = 2; int32 ReturnValue = 3; } message ImportKeyPair { int32 KeyPairtype = 1; bytes Prikey = 2; bytes Pubkey = 3; int32 ReturnValue = 4; } message ImportCertificate { int32 CerType = 1; bytes InData = 2; int32 InDataLen = 3; int32 ReturnValue = 4; } message ExportCertificate { int32 CerType = 1; bytes OutData = 2; int32 OutDataLen = 3; int32 ReturnValue = 4; } message ImportFile { bytes FileName = 1; bytes InData = 2; int32 InDataLen = 3; int32 ReturnValue = 4; } message ExportFile { bytes FileName = 1; bytes OutData = 2; int32 OutDataLen = 3; int32 ReturnValue = 4; } message GetHwcode { bytes HwCode = 1; int32 ReturnValue = 2; } message GetDevInfo { bytes DevInfo = 1; int32 ReturnValue = 2; }