小编pku*_*arn的帖子

如何在Openssl中使用AES进行加密

我正在尝试使用Openssl编写一个示例程序来进行AES加密.我试过通过Openssl文档(这是一个痛苦),无法弄清楚.我仔细检查了代码并发现了API的使用方法,我编写了一个小程序,如下所示(请省略行号).我没有看到任何加密发生...我错过了什么?

PS:编译时我没有遇到任何错误.

  1 #include <stdio.h> 
  2 #include <openssl/aes.h>   
  3 
  4 static const unsigned char key[] = {
  5   0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
  6     0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff,
  7       0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
  8         0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f
  9         };
 10 
 11 void main()
 12 {
 13     unsigned char text[]="virident";
 14     unsigned char out[10]; 
 15     unsigned char decout[10];
 16 
 17     AES_KEY wctx;
 18 
 19     AES_set_encrypt_key(key, …
Run Code Online (Sandbox Code Playgroud)

c openssl aes

38
推荐指数
4
解决办法
14万
查看次数

如何使用PKCS5_PBKDF2_HMAC_SHA1()

我正在尝试使用PKCS5_PBKDF2_HMAC_SHA1(),以下是我的示例程序.我想确定我的结果PKCS5_PBKDF2_HMAC_SHA1()是否正确所以我通过网站http://anandam.name/pbkdf2/验证了相同的结果,我看到了不同的结果.我正确使用API​​吗?

如果我正确地传递盐值,我有疑问.

我在程序后粘贴了我的结果和网站结果.

请帮我理解这个.

#include <stdio.h>     
#include <types.h> 
#include <string.h> 
#include <stdio.h> 
#include <stdlib.h> 

#include <malloc.h> 

#include <openssl/hmac.h> 
#include <openssl/evp.h> 
#include <openssl/engine.h> 
#include <openssl/aes.h>
#include <openssl/rand.h> 

#include <proto.h> 
#define KEY_LEN    32// 32 bytes - 256 bits 
#define KEK_KEY_LEN   5 
#define ITERATION   1000 

unsigned char salt_value[KEY_LEN]; 
unsigned char AESkey[KEY_LEN]; 
unsigned char XTSkey[KEY_LEN]; 
u8 fuse_key[KEY_LEN]; 

void main() 
{ 
    s32 i=0; 
    s32 len =0; 
    u8 *out; 
    u8 *rspHMAC; 
    const s8 pwd[] = "test"; 
    s8 rspPKCS5[KEK_KEY_LEN * 2]; …
Run Code Online (Sandbox Code Playgroud)

openssl salt pbkdf2

12
推荐指数
1
解决办法
2万
查看次数

在python中模拟grpc响应消息

最近,我一直在使用 MagicMock() 在 python 中模拟 gRPC 调用,但我没有成功模拟我得到的 gRPC 响应消息。这是一段Python客户端代码

def senor_read(self, server_end_point)
with grpc.insecure_channel(server_end_point) as grpc_channel:
    grpc_stub = sensorservice_pb2_grpc.getsensorinfostub(grpc_channel)
    sensor_response = yield grpc_stub.getsensorreading(sensorservice_pb2_grpc.request(
                    sensorname=name, account=account))
    if sensor_response.ok:
        print(" Successful sensor reading")
    elf sensor_resonse.error:
        raise Sensor_ErrorReading(why="Not able to read sensor)

    return convert_resoonse_to_dict(sensor_response)
Run Code Online (Sandbox Code Playgroud)

这是我模拟它的方式(还是新手学习模拟框架)

sensorservice_pb2_grpc = MagicMock()
sensorservice_pb2_grpc.getsensorinfostub = MagicMock()
mock_grpc_stub = MagicMock()
mock_grpc_channel = MagicMock()
mock_grpc_channel.grpc.insecure_channel = MagicMock()
mock_grpc_channel.grpc_channel = MagicMock()
mock_grpc_response = MagicMock(mock_grpc_stub.getsensorreading)
type(mock_grpc_response.return_value).error = PropertyMock(return_value=True)
Run Code Online (Sandbox Code Playgroud)

流程是 python 函数 senor_read() 向远程服务器发出 gRPC 请求并获取读数并传回调用者。

此测试的目的是使代码在“eif”情况下执行并捕获异常。1)当我执行测试代码时,如果情况发生并且我看到其他异常被发送给调用者,它不会进入“elf”。我是否在 gRPC 响应模拟中正确设置了状态?

2)我的模拟步骤对于模拟 gRPC 调用是否正确?

3)此外,当我运行时,我无法看到成功时的打印消息,而只能看到失败测试用例的打印消息。另外,实际功能中的打印不打印? …

python unit-testing mocking python-mock grpc-python

8
推荐指数
0
解决办法
4274
查看次数

使用 WithDetails() 从 gRPC 状态包传递自定义原型消息

我最近一直在尝试 gRPC 错误处理,并希望将我自己的原始消息传递给客户端(定义我自己的错误详细信息和内部错误代码)。经过搜索后,发现了几个使用 gRPC 状态包中的 WithDetails() 来附加自定义元数据的示例。我开始实施相同的如下

gRPC 原型消息

message ErrorInfo {
    int64 error_code = 1;
    string error_message = 2;
    string resource_name = 3;
}
Run Code Online (Sandbox Code Playgroud)

服务器端实现

// Frame the error message
        st := status.New(codes.NotFound, "object not found")
        errInfo := &api.ErrorInfo {
            ErrorCode: 100,
            ErrorMessage: "Fetching credential failed",
            ResourceName: req.GetBackupLocation().GetCloudCredential(),
        }
        var err error
        st, err = st.WithDetails(errInfo)
        if err != nil {
            // If this errored, it will always error
            // here, so better panic so we can figure
            // …
Run Code Online (Sandbox Code Playgroud)

go grpc grpc-go

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

像返回值的宏一样的函数

最近遇到了以下示例,这些示例返回一个寄存器读取__ret但没有返回语句

#define READWORD(offset)       ({ \
                 unsigned short __ret=0;\
                 __ret = readw(offset);\
                 __ret; \
                 })
Run Code Online (Sandbox Code Playgroud)

谷歌是否同样发现像宏这样的功能可以返回值.假设最后一个语句"_ ret"等同于返回一个值是否安全?如果我在" _ret" 之后有另一个更改__ret值的声明怎么办?哪一个会被退回?

c macros

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

使用 Paramiko 在主机密钥更改时自动更新 known_hosts 文件

目前我正在使用 Paramiko(在 Python 中)在节点上执行远程命令。有时,远程节点会更改其公钥,因此 Paramiko 会因指纹不匹配而失败。有没有办法在known_hosts更改时更新文件中的密钥?如果这是不可能的,有没有其他方法可以忽略抛出的警告?

目前我有一个 hacky 解决方案,known_hosts在拨打电话之前删除文件,这是不好的。

python ssh key paramiko ssh-keys

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

从函数返回char*的内容

最近遇到了以下代码,它声明了一个char*p,赋值如p ="GOOD"并返回return p.函数调用完成后返回值是否有效?

const char * get_state(int state)
{
    char *p;

    if (state) {
        p = "GOOD";
    }
    else
    {
        p = "BAD";
    }

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

c pointers return-value string-literals

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

使用崩溃实用程序在堆栈上查找局部变量

我正在使用崩溃实用工具来分析vmcore(linux)结果,但在提取函数中的局部变量值时遇到困难。谷歌搜索相同的说一个人可以使用“信息本地人”,但当我使用它时,它说找不到命令。

搜索了一段时间后,发现下面的链接说,这种支持存在于进行自动编译的崩溃购买中。 http://www.redhat.com/archives/crash-utility/2009-May/msg00003.html

在vmcore转储中是否有用于提取局部变量的指针?

linux crash crash-dumps

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

在gRPC TLS中禁用证书检查

当前,我有一台ngnix服务器(在端口5001上),其后正在运行gRPC服务器,其中nginx已启用TLS。所有gRPC客户端都需要将请求发送到nginx端口,该端口转发到正在运行的gRPC服务器。最初用于测试使用usePlaintext()发出gRPC请求,并且一切正常,但是最终目标是使用TLS。这里的要求是(因为这是内部应用程序),gRPC通道请求不需要通过证书,而是在创建通道时执行“跳过证书”。谷歌搜索之后,我发现了有关TLS的示例,但所有示例均采用.cert,.key文件。以下是我尝试过的代码段,它在服务器端失败,无法验证证书

 (java code)              
ManagedChannel channel = NettyChannelBuilder.forAddress(<server IP address>, 5001).sslContext(GrpcSslContexts.forClient().trustManager
                                (new File(<.cert file>).build())
                        .build();
Run Code Online (Sandbox Code Playgroud)

做更多的研究,我发现Golang有InsecureSkipVerify(),我可以使用它跳过认证检查(如果我错了,请纠正我)

tc := credentials.NewTLS(&tls.Config{
                InsecureSkipVerify: true,
            })
Run Code Online (Sandbox Code Playgroud)

现在如何在Java中完成相同的工作?

ssl ssl-certificate netty grpc tls1.2

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

在内核崩溃转储期间分析CPU寄存器

我正在调试一个问题并点击下面的内核崩溃以及生成的故障转储.在某种程度上,我知道,如何使用gdb(l*(debug_fucntion + 0x19))命令到达发生问题的代码中的确切行.

<1>BUG: unable to handle kernel paging request at ffffc90028213000
<1>IP: [<ffffffffa0180279>] debug_fucntion+0x19/0x160 [dise]
<4>PGD 103febe067 PUD 103febf067 PMD fd54e1067 PTE 0
<4>Oops: 0000 [#1] SMP
<4>last sysfs file: /sys/kernel/mm/ksm/run
<4>CPU 7
<4>Modules linked in: dise(P)(U) ebtable_nat ebtables ipt_MASQUERADE iptable_nat nf_nat xt_CHECKSUM iptable_mangle bridge autofs4 8021q garp stp llc ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 iptable_filter ip_tables ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables ipv6 vhost_net macvtap macvlan tun kvm uinput ipmi_devintf power_meter microcode iTCO_wdt iTCO_vendor_support dcdbas sg ses enclosure serio_raw …
Run Code Online (Sandbox Code Playgroud)

linux crash-dumps linux-kernel

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

静态如何在函数调用中保持其值

最近在一次采访中,我遇到了这个问题"静态变量如何在函数调用中保持其先前的值".想了一会但是真的想不出任何有说服力的答案.有人可以解释一下吗?尝试做谷歌,找不到我的信息.

c static

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

互斥可以取代内存障碍

我试图了解内存障碍并且遇到了下面的维基百科链接 http://en.wikipedia.org/wiki/Memory_barrier 这很好地解释了这个概念,但有想法,如果这对我们有mutex()锁定的系统真有帮助记忆部分.

使用维基百科中提到的相同代码,以下方法是否会使用互斥锁解决问题?

[注意:函数名称并非特定于任何编程语言,仅用于简单起见]

处理器#1

mutex_lock(a)
while (f == 0);
print x;
mutex_unlock(a)
Run Code Online (Sandbox Code Playgroud)

处理器#2

mutex_lock(a)
x = 42;
f = 1;
mutex_unlock(a)
Run Code Online (Sandbox Code Playgroud)

memory mutex linux-kernel memory-barriers

0
推荐指数
2
解决办法
1388
查看次数