标签: cryptoapi

iPhone上的RSA加密

根据http://forums.macrumors.com/showthread.php?t=551476上的讨论,下面的代码可用于RSA加密.密钥("public")的数据类型是SecKeyRef.但是,我不会使用钥匙串,因为我只对密钥是公开的加密感兴趣并且不是秘密.那么甚至可以使用加密API吗?我目前的想法是仅使用我的公钥构造SecKeyRef结构并使用API​​.但是我不知道如何声明结构.有人知道吗?你认为我的方法会起作用吗?

uint8_t *pPlainText = (uint8_t*) "This is a test";
uint8_t aCipherText[1024];
size_t iCipherLength = 1024;

status = SecKeyEncrypt(public,
                       kSecPaddingNone,
                       pPlainText,
                       strlen((char*) pPlainText ) + 1,
                       aCipherText,
                       &iCipherLength);
Run Code Online (Sandbox Code Playgroud)

iphone cryptography rsa keychain cryptoapi

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

如何使用 cryptoapi 获取十六进制格式字符串中的证书序列号?

如何使用 cryptoapi 获取十六进制格式字符串中的证书序列号?我尝试过使用

LPTSTR pszSerial = NULL;
    DWORD cbSerial = 0;
    CryptBinaryToString(pCertContext->pCertInfo->SerialNumber.pbData,pCertContext->pCertInfo->SerialNumber.cbData,CRYPT_STRING_HEX,NULL,&cbSerial);
    pszSerial = new TCHAR[cbSerial];
    CryptBinaryToString(pCertContext->pCertInfo->SerialNumber.pbData,pCertContext->pCertInfo->SerialNumber.cbData,CRYPT_STRING_HEX,pszSerial,&cbSerial);
Run Code Online (Sandbox Code Playgroud)

但结果不是我想要的,我可以获得序列号,但它相反。

c++ cryptoapi

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

如何从本机代码中的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
查看次数

MD5加密API为某些明文返回错误的哈希值

我正在尝试使用Microsoft加密API来计算MD5哈希值,但是我得到的哈希值不正确:

#include <windows.h>
#include <stdio.h>
#include <wincrypt.h>

char* HashMD5(char* data, DWORD *result)
{
    DWORD dwStatus = 0;
    DWORD cbHash = 16;
    int i = 0;
    HCRYPTPROV cryptProv;
    HCRYPTHASH cryptHash;
    BYTE hash[16];
    char *hex = "01234567879abcdef";
    char *strHash = "00000000000000000000000000000000";
    if(!CryptAcquireContext(&cryptProv, NULL, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
    {
        dwStatus = GetLastError();
        printf("CryptAcquireContext failed: %d\n", dwStatus);
        *result = dwStatus;
        return NULL;
    }
    if(!CryptCreateHash(cryptProv, CALG_MD5, 0, 0, &cryptHash))
    {
        dwStatus = GetLastError();
        printf("CryptCreateHash failed: %d\n", dwStatus);
        CryptReleaseContext(cryptProv, 0);
        *result = dwStatus;
        return NULL;
    }
    if(!CryptHashData(cryptHash, …
Run Code Online (Sandbox Code Playgroud)

c winapi md5 cryptography cryptoapi

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

如何从C#中的.Net DLL中提取公钥?

我想从Autenticode签名的.Net DLL中提取C#中的公共密钥,而不是公共密钥令牌吗?

.net c# rsa cryptoapi

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

如何使用 binance api 获取市场价格

我不知道如何拨打红圈内的号码。我想得到它。我尝试从 binance 读取 Restful api 文档和 web-socket api,但响应值不包含此内容,或者可能我错过了一些东西。

那么如何得到这个号码呢?谢谢。

在此输入图像描述

cryptoapi cryptocurrency binance binance-api-client

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