小编Eri*_*ist的帖子

clang-format能为我调整一块#defines吗?

我有一个包含这样的行的源文件;

#define ARC_V2_LP_START         0x002
#define ARC_V2_LP_END           0x003
#define ARC_V2_STATUS32         0x00a
Run Code Online (Sandbox Code Playgroud)

所有的值很好地对齐.不幸的是,clang-format会这样做;

#define ARC_V2_LP_START 0x002
#define ARC_V2_LP_END 0x003
#define ARC_V2_STATUS32 0x00a
Run Code Online (Sandbox Code Playgroud)

我找到了AlignConsecutiveDeclarations和AlignConsecutiveAssignments选项,但没有任何可以对齐连续的#defines.是否有可能做到这一点?

c c++ clang-format

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

如何将原始模数和指数转换为RSA公钥(.pem格式)

我有一个嵌入到二进制文件中的RSA公钥的模数和指数,我试图提取整个blob并创建一个可用的.pem公钥.

目前,我正在提取完整的260个字节(指数为4个字节,模数为256个字节),编码为base64.我使用以下shell命令执行此操作:

tail -c $((filesize - start_of_key_data)) filename | head -c $size_of_key_data | base64 > outkey
Run Code Online (Sandbox Code Playgroud)

这给了我以下字符串:

<<<<<< modulus & exponent extracted from binary file, base64-encoded >>>>>>

tZyrQA6cZFJfVm6FyXwtZaLQYg8EecuO+ObrHTwc8JO+XrgnpNAdmlhbAEPxSNnjwhNnbYGYGL4F
vzmnZXzZU71Key42HQPh1k2Zx1UDbrH5ciODKx1ZbuEx8K24SHnL1nY/H75hwhT/ZRRVGQDvYDT+
sgzw2vmV66+dflw1Zs8BLhqjLjczdHvjeVXsDRJ9Mvvd/dhFH8UlTf4JpLGya9nsNIfNBBIf1Lll
RWwCTiEIbaOMgWcLjLV/2tk/j5Dra/oQnVf/2hVsEF/hXEx41YjeEW/warweoDVG7zaxrHEc/k/r
ZCUCZKxf8nBKdqax/gRICvkG6e5xg2GQw0W/ZwABAAE=
Run Code Online (Sandbox Code Playgroud)

现在,当我拿出key.pem密钥对时,模数和指数最初是从中提取的,并显示公共部分,如此

openssl rsa -in key.pem -pubout -out pubkey.pem
Run Code Online (Sandbox Code Playgroud)

我得到这个字符串(我省略了页眉和页脚行:

<<<<<<<<< valid public key data extracted from keypair >>>>>>>>>

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtZyrQA6cZFJfVm6FyXwt
ZaLQYg8EecuO+ObrHTwc8JO+XrgnpNAdmlhbAEPxSNnjwhNnbYGYGL4FvzmnZXzZ
U71Key42HQPh1k2Zx1UDbrH5ciODKx1ZbuEx8K24SHnL1nY/H75hwhT/ZRRVGQDv
YDT+sgzw2vmV66+dflw1Zs8BLhqjLjczdHvjeVXsDRJ9Mvvd/dhFH8UlTf4JpLGy
a9nsNIfNBBIf1LllRWwCTiEIbaOMgWcLjLV/2tk/j5Dra/oQnVf/2hVsEF/hXEx4
1YjeEW/warweoDVG7zaxrHEc/k/rZCUCZKxf8nBKdqax/gRICvkG6e5xg2GQw0W/
ZwIDAQAB
Run Code Online (Sandbox Code Playgroud)

您可以看到我自己提取的base64编码的关键数据实际上存在于使用openssl从key.pem中提取的有效公钥数据的数据中.但是一开始有45个字符,我自己提取的数据没有 -

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
Run Code Online (Sandbox Code Playgroud)

最后8个字符也不同.

ZwIDAQAB
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供一些关于如何将模数和指数转换为可用公钥的建议吗?

(目标是在bash脚本中执行此操作,而不是像我见过许多建议的那样使用python或C.)

bash rsa public-key-encryption

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

严重混淆了candump(SocketCAN)ID过滤功能

简而言之,我希望candump只向我显示ID为0x00200200或0x255的帧.

所以我这样做:

candump can0,00200200:0,255:0
Run Code Online (Sandbox Code Playgroud)

但这会给出所有帧,每帧显示两次.即输出:

cansend can0 256#112233
Run Code Online (Sandbox Code Playgroud)

会是这样的:

can0      256  [3] 11 22 33
can0      256  [3] 11 22 33
Run Code Online (Sandbox Code Playgroud)

除了过滤器不像我预期的那样并且通过0x256之外,它显示两次的事实表明这些帧实际上是由两个滤波器匹配的,这对我来说更没意义.任何人都可以解释为什么会这样,也许可以告诉我正确的方法吗?

linux can-bus socketcan canutils

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

将一个'typedef struct'数组传递给一个函数

我有以下情况:

文件Ac:

typedef struct element
{
    uint16_t value_raw;
    float value_scaled;
    char *desc;
} element;

element sv[REG_READ_COUNT];
Run Code Online (Sandbox Code Playgroud)

文件啊:

typedef struct element element;
Run Code Online (Sandbox Code Playgroud)

文件Bc:

#include "A.h"
void dostuff (element sv[]) { } 
Run Code Online (Sandbox Code Playgroud)

在编译时我得到"错误:数组类型具有不完整的元素类型"为Bc中的函数参数定义

这样做的正确方法是什么?如何将'element'类型的数组传递给函数?

c arrays typedef

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