我正在尝试使用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) 我正在尝试使用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) 最近,我一直在使用 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)此外,当我运行时,我无法看到成功时的打印消息,而只能看到失败测试用例的打印消息。另外,实际功能中的打印不打印? …
我最近一直在尝试 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) 最近遇到了以下示例,这些示例返回一个寄存器读取__ret但没有返回语句
#define READWORD(offset) ({ \
unsigned short __ret=0;\
__ret = readw(offset);\
__ret; \
})
Run Code Online (Sandbox Code Playgroud)
谷歌是否同样发现像宏这样的功能可以返回值.假设最后一个语句"_ ret"等同于返回一个值是否安全?如果我在" _ret" 之后有另一个更改__ret值的声明怎么办?哪一个会被退回?
目前我正在使用 Paramiko(在 Python 中)在节点上执行远程命令。有时,远程节点会更改其公钥,因此 Paramiko 会因指纹不匹配而失败。有没有办法在known_hosts更改时更新文件中的密钥?如果这是不可能的,有没有其他方法可以忽略抛出的警告?
目前我有一个 hacky 解决方案,known_hosts在拨打电话之前删除文件,这是不好的。
最近遇到了以下代码,它声明了一个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) 我正在使用崩溃实用工具来分析vmcore(linux)结果,但在提取函数中的局部变量值时遇到困难。谷歌搜索相同的说一个人可以使用“信息本地人”,但当我使用它时,它说找不到命令。
搜索了一段时间后,发现下面的链接说,这种支持存在于进行自动编译的崩溃购买中。 http://www.redhat.com/archives/crash-utility/2009-May/msg00003.html
在vmcore转储中是否有用于提取局部变量的指针?
当前,我有一台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中完成相同的工作?
我正在调试一个问题并点击下面的内核崩溃以及生成的故障转储.在某种程度上,我知道,如何使用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) 最近在一次采访中,我遇到了这个问题"静态变量如何在函数调用中保持其先前的值".想了一会但是真的想不出任何有说服力的答案.有人可以解释一下吗?尝试做谷歌,找不到我的信息.
我试图了解内存障碍并且遇到了下面的维基百科链接 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) c ×4
crash-dumps ×2
grpc ×2
linux ×2
linux-kernel ×2
openssl ×2
python ×2
aes ×1
crash ×1
go ×1
grpc-go ×1
grpc-python ×1
key ×1
macros ×1
memory ×1
mocking ×1
mutex ×1
netty ×1
paramiko ×1
pbkdf2 ×1
pointers ×1
python-mock ×1
return-value ×1
salt ×1
ssh ×1
ssh-keys ×1
ssl ×1
static ×1
tls1.2 ×1
unit-testing ×1