目录
一.前言
C++提供了windows和linux的两种库,netcore调用并实现.
二.netcore调用
1.windows库引用dll文件
public static class VVSecurity_win32
{
private const string dllName = "Lib/vvsec_win32/VVSecurity.dll";
[DllImport(dllName, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern int VVSec_Initlize(IntPtr pDevice, string pUserPin);
[DllImport(dllName, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern int VVSec_SM4EncryptData(DEVICE_HANDLE pDevice, PKI_DATA plaintext, ref PKI_DATA ciphertext);
[DllImport(dllName, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern int VVSec_SM4DecryptData(DEVICE_HANDLE pDevice, PKI_DATA ciphertext, ref PKI_DATA plaintext);
[DllImport(dllName, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern int VVSec_Finalize(DEVICE_HANDLE pDevice);
}
2.linux库引用so文件
public static class VVSecurity_centos64
{
private const string dllName = "Lib/vvsec_centosx64/VVSecurity.so";
[DllImport(dllName, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern int VVSec_Initlize(IntPtr pDevice, string pUserPin);
[DllImport(dllName, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern int VVSec_SM4EncryptData(DEVICE_HANDLE pDevice, PKI_DATA plaintext, ref PKI_DATA ciphertext);
[DllImport(dllName, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern int VVSec_SM4DecryptData(DEVICE_HANDLE pDevice, PKI_DATA ciphertext, ref PKI_DATA plaintext);
[DllImport(dllName, CharSet = CharSet.Ansi, CallingConven

最低0.47元/天 解锁文章
4188

被折叠的 条评论
为什么被折叠?



