Tag: cryptography

内核非对称加密中的crypto_akcipher_set_pub_key总是返回错误

我正在研究一个内核模块,它使用内核crypto api的非对称密码,内核版本为4.8.0。 我通过openssl生成非对称密钥对,将它们转换为DER格式(我知道它是BER的一个子集),并将代码编入我的模块。 私钥工作得很好,但是公钥在crypto_akcipher_set_pub_key中总是失败,即使我尝试了更多其他密钥对。 dmesg只是打印: [16891.604718] next_op: pc=0/10 dp=0/161 C=0 J=0 [16891.604721] – match? 30 30 00 [16891.604724] – TAG: 30 158 CONS [16891.604726] next_op: pc=2/10 dp=3/161 C=1 J=0 [16891.604727] – match? 30 02 32 [16891.604729] ASN1: Unexpected tag [m=2 d=4 ot=02 t=30 l=158] [16891.604730] set key error! -74,,,,,0 这是我的问题: A)dmesg是否意味着公钥是错误的? 如何生成内核加密兼容密钥对? B)我找不到内核非对称密码的可用rsa密钥对,即使在Linux / crypto […]

无法使用Cygwin和OpenSSL计算CMAC

我想使用OpenSSL计算CMAC。 我发现这个问题对我很有帮助。 但我遇到以下代码的问题: #include void dispHex(const unsigned char *buffer, unsigned int size) { int i=0; for (i=0; i<size-1; i++) { printf("%02X ", buffer[i]); } printf("%02x\n", buffer[i]); } int main() { size_t out_len; unsigned char res[16]; unsigned char mac_key[16] = { 0x00, 0x01 ,0x02 ,0x03, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01 ,0x02 ,0x03, 0x04, 0x05, 0x06, […]

通过getauxval检测Power8内核加密?

我在GCC112上,这是一台运行Linux的小端Power8机器。 Power8具有内核加密function,可提供AES,SHA和一些其他有用的function。 我正在尝试使用getauxval确定运行时function的可用性。 用例是为“最小”function的机器构建的发行版,我们需要在运行时交换更快的function。 hwcaps.h的转储如下所示,但缺少Power8,AES,SHA等的特定位。 但是,我相信Power8是ISA 2.07,而ISA 2.07的位是PPC_FEATURE2_ARCH_2_07 。 我不清楚的是,Power8内核加密可选,就像ARMv8下ARM的加密一样。 我找不到明确说明要求的文档,而且我没有OpenPower的成员资格来访问ISA文档。 (另一种可能性是,它被陈述但我在文档中错过了它)。 是否可以使用getauxval查询function的运行时环境? 如果没有,那么我们如何在运行时确定function可用性? CPU探测是唯一可用的替代方案吗? 也许更一般地说,我们如何确定Power6,Power7和Power8运行时环境? auxv.h大多是空的。 头文件包含hwcaps.h 。 $ cat /usr/include/bits/hwcap.h … /* The bit numbers must match those in the kernel’s asm/cputable.h. */ /* Feature definitions in AT_HWCAP. */ #define PPC_FEATURE_32 0x80000000 /* 32-bit mode. */ #define PPC_FEATURE_64 0x40000000 /* 64-bit mode. */ […]

用于在C / C ++中实现RSA的开源代码(使用库或自己编写)

我需要用于RSA实现的开源代码(加密/解密和其他)。 谁能提出一些建议。 编辑:使用像opessl这样的开源库或者自己编写它是否很好(库也包含其他冗余的东西)

使用openssl生成DSA密钥对

我想使用C生成私钥和公钥,以便在身份validation过程中使用它们。 你能给我一个基本的例子来生成C中的密钥吗? 我发现了这些function,但我不知道如何使用它们: DSA * DSA_generate_parameters(int bits, unsigned char *seed, int seed_len, int *counter_ret, unsigned long *h_ret, void (*callback)(int, int, void *), void *cb_arg); int DSA_generate_key(DSA *dsa); 请帮帮我! 谢谢! 🙂

可移植类库是否支持System.Security.Cryptography命名空间

我正在将现有的多目标Silverlight / .NET项目转换为可移植类库项目,以减少支持多个Microsoft平台所需的项目数量。 我在一个使用System.Security.Cryptography命名空间的类中有错误 命名空间’System.Security’中不存在类型或命名空间名称’Cryptography’(您是否缺少程序集引用?) 这个命名空间在Silverlight中可用,我想知道为什么Portable Class Library不支持它? 一个原因可能是此行为是设计原因:任何与加密相关的代码都不应出现在客户端API中。