标签: libgcrypt

交叉编译到静态库(libgcrypt)以在iOS上使用

我从https://www.gnupg.org/download/index.html下载了最新的libgcrypt和libgpg错误库.我已经使用./configure --enable-static --disable-shared成功构建了(命令行)两个库.制作 在我的Mac上安装make(Mavericks w/OSX 10.10和最新的Xcode 6.1).

我可以从我正在构建的OS X客户端应用程序链接到这些新库.到现在为止还挺好.刚刚好.但是,我还需要使用相同的源代码构建iOS客户端.

问题:

1)我需要为库(模拟器,Mac和iOS)构建通用静态库,对库的命令行构建序列有哪些修改?2)或者我是否需要为iOS构建单独的静态库?如果是这样,那么,我需要用什么命令行魔法来完成目标架构?

autoconf ios libgcrypt

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

aes-gcm 在 C 中使用 libgcrypt api

我正在使用 libgcrypt(Gentoo x64 上的 v1.6.1)并且我已经实现(并通过 AEs 测试向量进行了测试)aes256-cbc 和 aes256-ctr。现在我正在查看 aes256-gcm,但我对工作流程有一些疑问。下面是一个简单加密程序的骨架:

int main(void){

    unsigned char TEST_KEY[] = {0x60,0x3d,0xeb,0x10,0x15,0xca,0x71,0xbe,0x2b,0x73,0xae,0xf0,0x85,0x7d,0x77,0x81,0x1f,0x35,0x2c,0x07,0x3b,0x61,0x08,0xd7,0x2d,0x98,0x10,0xa3,0x09,0x14,0xdf,0xf4};
    unsigned char TEST_IV[] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};
    unsigned char TEST_PLAINTEXT_1[] = {0x6b,0xc1,0xbe,0xe2,0x2e,0x40,0x9f,0x96,0xe9,0x3d,0x7e,0x11,0x73,0x93,0x17,0x2a};

    unsigned char cipher[16] = {0};

    int algo = -1, i;
    const char *name = "aes256";

    algo = gcry_cipher_map_name(name);

    gcry_cipher_hd_t hd;
    gcry_cipher_open(&hd, algo, GCRY_CIPHER_MODE_GCM, 0);
    gcry_cipher_setkey(hd, TEST_KEY, 32);
    gcry_cipher_setiv(hd, TEST_IV, 16);

    gcry_cipher_encrypt(hd, cipher, 16, TEST_PLAINTEXT_1, 16);
    char out[33];
    for(i=0;i<16;i++){
        sprintf(out+(i*2), "%02x", cipher[i]);
    }
    out[32] = '\0';
    printf("%s\n", out);

    gcry_cipher_close(hd);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在 GCM …

c aes-gcm libgcrypt

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

启用FIPS会导致libgcrypt错误

我有两台CentOS 6.7机器(服务器A和B).每个系统上都安装了相同的软件包版本.

上周我在服务器A上启用了openSSH FIPS 140-2模块,该系统完美运行(包括对SQL Server实例的tsql查询).

今天我在服务器B上执行了相同的步骤(在上面的链接中).重新启动后,fips显示已启用并已测试正常 - 但tsql(对于同一SQL Server实例)已停止使用以下错误:

[serverB ~]# tsql -S egServer80 -U myusername
Password: 
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Error 20002 (severity 9):
    Adaptive Server connection failed
There was a problem connecting to the server
Run Code Online (Sandbox Code Playgroud)

我查看日志文件并找到:

tsql: Libgcrypt warning: MD5 used - FIPS mode inactivated
Run Code Online (Sandbox Code Playgroud)

在freetds中启用调试会产生以下额外错误:

14:56:46.617196 3577 (net.c:1366):'''handshake failed: GnuTLS internal error.
Run Code Online (Sandbox Code Playgroud)

退出FIPS模块(从grub.conf中删除fips = 1)并重新启动设置回来,我又能够tsql进入我的SQL Server实例.

两个CentOS机器都使用相同的libgcrypt版本(1.4.5).

为什么(或如何)在grub中启用FIPS导致libgcrypt在这台机器上失败? 显然,机器之间的某些配置是关闭的,但我无法发现它,并且已经耗尽了资源以找到下一步的位置.


注意#1:

我可以 …

centos fips freetds libgcrypt

5
推荐指数
0
解决办法
291
查看次数

libgcrypt如何递增CTR模式的计数器?

我使用libgcrypt的CTR模式实现使用AES-256加密文件.我希望能够部分解密文件(例如,解密20个块中的5-10个块而不解密整个文件).

我知道通过使用CTR模式,我应该能够做到这一点.我所需要的只是知道正确的计数器.问题在于我所拥有的只是块0的初始计数器.例如,如果我想解密块5,我需要另一个计数器,通过对每个块的初始计数器执行一些操作来实现到5.

我似乎无法找到libgcrypt公开的API,以便为给定初始计数器的后续块计算计数器.

在给定块#0的计数器的情况下,如何计算后续块的计数器(例如块#5)?

cryptography block-cipher libgcrypt ctr-mode

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

压缩和加密......首先应用哪个?

我正在C中进行远程备份项目...我想发送数据和压缩以及加密数据.

但是我很困惑是先压缩还是先加密!

什么会更好?:

  1. 压缩数据然后加密
  2. 加密数据然后压缩它

此外,我将使用zlib进行压缩.我想知道使用哪种加密库...有人说libgcrypt很好.建议好的加密库(非常容易使用)将不胜感激... :)

或者有什么可以完成这两项工作吗?

谢谢!

compression encryption libgcrypt

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