我想添加UInt32到我使用的字节缓冲区[UInt8].在java中,有一个方便的ByteBuffer类,它具有像putInt()这样的方法,就像这样.怎么可以在swift中完成?
我想我可以解决这个问题如下:
let example: UInt32 = 72 << 24 | 66 << 16 | 1 << 8 | 15
var byteArray = [UInt8](count: 4, repeatedValue: 0)
for i in 0...3 {
byteArray[i] = UInt8(0x0000FF & example >> UInt32((3 - i) * 8))
}
Run Code Online (Sandbox Code Playgroud)
这是非常冗长的,任何更简单的方法?
是否可以使用 crypto++ 库来解码字节数组中的任意 ASN1 数据(其中有几个序列和整数)。ash.h 包含所有以 BufferedTransformation 作为输入的方法,但该类是不同密码和哈希的接口,这似乎与我的简单情况根本无关。我还在 cryptlib.h 中找到了 ASN1Object,但它是另一个接口,我还没有找到任何实现类。
我是否认为这对我自己来说太复杂了,或者解码任意 ASN1 数据实际上很困难?
我实际上在 Swift/objective-c iOS 应用程序中使用它,所以如果有人使用其他工具有一个简单的解决方案,请告诉我。
编辑:添加数据的示例结构
SEQUENCE
SEQUENCE
INTEGER
INTEGER
SEQUENCE
INTEGER
INTEGER
Run Code Online (Sandbox Code Playgroud)
总有一个父序列包含 1 到 n 个序列,每个序列包含 2 个整数(elgamal 加密对 (g^r, mh^r))。