Articles of 密码学

在C中encryption一个纯文本文件

我目前正在用C写一个从configuration文件中读取的linux应用程序。 这个configuration文件包含一些我想encryption的数据,所以它不是纯文本。 我花了几个小时研究这个,并没有find一个可行的解决scheme。 由于应用程序将需要从configuration中读取,我将需要能够encryption并在运行中解密。 至于研究,我真的很喜欢openSSLencryption库。 我知道从命令行你可以做到: openssl enc -aes-256-cbc -salt -in file.txt -out file.enc 如果任何人都可以提供一个如何在C中做到这一点的例子,将不胜感激。

如何在linux中的cryptoAPI中添加更多的algorithm

当我检查/ proc /encryption它显示我: abhi@ubuntu:/proc$ cat crypto name : stdrng driver : krng module : kernel priority : 200 refcnt : 1 selftest : passed type : rng seedsize : 0 name : md5 driver : md5-generic module : kernel priority : 0 refcnt : 1 selftest : passed type : shash blocksize : 64 digestsize […]

Linux Crypto API和linux / crypto.h – 文档

我想写一个C程序,它使用Linux crypto-api进行数字签名。 不幸的是,我找不到有关linux api和linux / crypto.h中定义的函数的好文档(search引擎没有帮助,这些函数的手册页不存在)。 所以现在我想知道这里有没有人可以帮我一个好的链接,一本书也将不胜感激。 第二个简短的问题:在这个密码的东西里面,“tfm”这个词出现在struct crypto_tfm或函数中,但是我找不到tfm究竟是什么意思。

OpenSSL使用EVP与algorithmAPI进行对称encryption

您好我已经在我的Linux机器上安装openssl,并通过头文件和文件(这是非常insufficint :()。 我正在尝试构build一个使用对称encryptionalgorithm的项目(在'c')(我专注于aes256cbc)。 问题是我很困惑,因为在我的代码中如何使用库函数。 对于我的aes256cbc的实现,我可以直接使用'aes.h'头文件中定义的函数(首先在我看来)。 但在谷歌search我来到一些教程这是使用'evp.h'函数来做到这一点http://saju.net.in/code/misc/openssl_aes.c.txt 有没有一个特定的原因,或直接访问aes.h函数是更好的。 而且如果有人能指点我一个很好的文档/教程的任何一种使用openssl的encryption库将不胜感激。 非常感谢 PS原谅我,如果我是天真的

无法链接OpenSSL代码

我正在尝试构build一个openssl简单的程序。 这里是完整的代码: #include <stdio.h> #include <stdlib.h> #include <string.h> #include "openssl/aes.h" int main(int argc, char* argv[]) { AES_KEY aesKey_; unsigned char userKey_[16]; unsigned char in_[16]; unsigned char out_[16]; strcpy(userKey_,"0123456789123456"); strcpy(in_,"0123456789123456"); fprintf(stdout,"Original message: %s", in_); AES_set_encrypt_key(userKey_, 128, &aesKey_); AES_encrypt(in_, out_, &aesKey_); AES_set_decrypt_key(userKey_, 128, &aesKey_); AES_decrypt(out_, in_,&aesKey_); fprintf(stdout,"Recovered Original message: %s", in_); return 0; } 我尝试使用这个命令来编译它: gcc -I/home/aleksei/openSSL0.9.8/include […]

将一个X509 PEM文件加载到Windows CryptoApi中

我对整个Crypto事物是新的,所以我请求一些基本的指针。 我需要加载.PEM(X509)“—– BEGIN RSA XXX KEY —– —–结束RSA XXX KEY —–”到Windows Crypto Api上下文中使用C ++(我find了Python和.NET的例子,但他们使用特定的function,我不能涉及到普通的Windows Crypto Api) 我知道如何encryption/解密一旦我有一个HCRYPTKEY。 但是,我只是不知道如何导入.PEM文件中的Base64 blob,并得到一个HCRYPTKEY,我可以使用它。 我有这样的感觉,除了简单的调用CryptDecodeObject()之外,还有更多的东西。 任何可以让我走上正轨的指针? 我已经失去了2天的“试错”编程,并没有取得任何进展。

CryptoAPI / WinCrypt:如何在C ++中导入PEM文件中的私钥?

我试图在C ++中使用WinCrypt API 。 我的应用程序需要encryption,解密,签名和validation文件,而且我知道如何做到这一点,一旦我有正确的密钥。 但我的问题实际上是不是生成这些键的应用程序。 我拥有的是PEM格式文件中的公钥和私钥: —–BEGIN RSA PRIVATE KEY—– [Base64 encoded] —–END RSA PRIVATE KEY—– 和: —–BEGIN RSA PUBLIC KEY—– [Base64 encoded] —–END RSA PUBLIC KEY—– 经过一番研究,我发现如何导入公钥: 这里和这里 ,使用以下方法: CreateFile & ReadFile来读取文件内容 CryptStringToBinary ,使用CRYPT_STRING_BASE64HEADER将PEM格式转换为DER格式(从base64中删除页眉和页脚并解码) CryptDecodeObjectEx与X509_PUBLIC_KEY_INFO CryptImportPublicKeyInfo来导入密钥 但现在,我的问题是做私人密钥相同的事情。 任何帮助将真的非常感激:)谢谢。

CryptExportKey在C#

什么是相当于这个CryptExportKey调用的C#? CryptExportKey(hKey, hPublicKey, SIMPLEBLOB, 0, lpData, &nSize); 如果你可以在你的C#代码的地方给出一个描述,那就太好了 hKey,hPublicKey和SIMPLEBLOB(或者它们在C#中的等价物)正在被使用

CryptEncrypt不会encryption整个文本

我正在尝试使用wincryptencryption文本消息。 我的代码是不可预知的。 它不encryption/解密整个明文,但只是其中的一部分。 如果我更改密码的长度(例如“password123”),它将encryption/解密不同数量的字符。 这是我的代码。 #include <windows.h> #include <wincrypt.h> #include <stdio.h> int main() { const char* passw = "password12"; const char* toencrypt = "consectetur adipiscing elit. In tellus nisl, sodales non arcu quis, sagittis maximus orci cras amet."; HCRYPTPROV hProv; HCRYPTHASH hHash; HCRYPTKEY hKey; DWORD todwSize = (DWORD)strlen(toencrypt); PBYTE pBuffer; CryptAcquireContext(&hProv, NULL, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_DELETEKEYSET); […]