小编Ras*_*ber的帖子

C#:如何将开关与if语句组合?

我需要将一个开关与一个if语句结合起来.

我怎样才能做到这一点?我想做这样的事情:

switch (periodtype)
{
    if(starttime>endtime)
    {
        ;
    }
    else
    {
        case 0: nextRunTime = nextRunTime.AddHours(period); break;
        case 1: nextRunTime = nextRunTime.AddMinutes(period); break;
        case 2: nextRunTime = nextRunTime.AddSeconds(period); break;
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# if-statement switch-statement

1
推荐指数
1
解决办法
7422
查看次数

array <Byte> ^ to unsigned char*:: Marshall class - Interop Issue

我想将数组<Byte> ^转换为unsigned char*.我试图解释我做了什么.我不知道如何继续前进.请告诉我正确的方法.我正在使用MS VC 2005.

//Managed array  
array<Byte>^ vPublicKey = vX509->GetPublicKey();

//Unmanaged array
unsigned char        vUnmanagedPublicKey[MAX_PUBLIC_KEY_SIZE]; 
ZeroMemory(vUnmanagedPublicKey,MAX_PUBLIC_KEY_SIZE);

//MANAGED ARRAY to UNMANAGED ARRAY  

// Initialize unmanged memory to hold the array.  
vPublicKeySize = Marshal::SizeOf(vPublicKey[0]) * vPublicKey->Length;  
IntPtr vPnt = Marshal::AllocHGlobal(vPublicKeySize);

// Copy the Managed array to unmanaged memory.  
Marshal::Copy(vPublicKey,0,vPnt,vPublicKeySize);
Run Code Online (Sandbox Code Playgroud)

这里vPnt是一个数字.但是如何将数据从vPublicKey复制到vUnmanagedPublicKey.

谢谢
Raj

interop cryptography c++-cli type-conversion

1
推荐指数
1
解决办法
6511
查看次数

Windows 7徽标测试

我们使用msxml4作为我们的安装程序的合并模块.我们成功地将它与Windows XP和Vista一起使用.但是,它会在Windows 7徽标测试中生成警告.测试用例3,成功发出警告"文件C:\ WINDOWS\SYSWOW64\MSXML4.DLL被写入错误的位置".

任何建议/想法,以避免这种警告?

logo-testing windows-7

1
推荐指数
1
解决办法
306
查看次数

如何从本机代码中的XML或模数/指数导入RSA公钥,以便与Windows CAPI的CryptVerifySignature一起使用?

在C#中,我能够通过以下任一方式对公钥进行哈希验证:

// Import from raw modulus and exponent
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) {
    RSAParameters rsaKeyInfo = new RSAParameters {Modulus = modulus, Exponent = exponent};
    rsa.ImportParameters(rsaKeyInfo);
    return rsa.VerifyHash(hash, CryptoConfig.MapNameToOID("SHA512"), signature);
}

// Import from XML
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) {
    rsa.FromXmlString(xmlPublicKey);
    return rsa.VerifyHash(hash, CryptoConfig.MapNameToOID("SHA512"), signature);
}
Run Code Online (Sandbox Code Playgroud)

我需要知道的是,在给定入站RSA公钥的情况下,如何使用CAPI完成同样的事情?

除了了解如何将公钥导入加密提供程序的上下文之外,我还有大多数验证哈希所需的CAPI函数:

HCRYPTPROV hCryptProv;
HCRYPTHASH hHash;

CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, 0);
CryptCreateHash(hCryptProv, CALG_SHA512, 0, 0, &hHash);
CryptHashData(hHash, pDataToHash, lenDataToHash, 0);
CryptVerifySignature(hHash, pSignature, sigLength, NULL, CRYPT_NOHASHOID);
CryptDestroyHash(hHash);
CryptReleaseContext(hCryptProv, 0);
Run Code Online (Sandbox Code Playgroud)

谢谢!

cryptography rsa cryptoapi public-key mscapi

0
推荐指数
1
解决办法
3094
查看次数