ディスカッション (3件)
wolfSSLから、組み込み環境に特化した新しい製品「wolfCOSE」が登場しました。これは、C言語で実装されたゼロアロケーション(動的メモリ確保なし)のCOSE(CBOR Object Signing and Encryption)スタックです。限られたリソース環境で安全な通信や署名を実現したいエンジニアにとって、非常に強力な選択肢となるでしょう。
知らない人のために補足しておくと、COSE1はCBOR Object Signing and Encryptionの略で、CBORはバイナリ版JSONの代わりになるものだね。JOSE(JWKとかでおなじみのJSON標準)をモデルにして作られているよ。
最近効率的なバイナリ通信をいろいろ調べている身として、READMEの2点について気になったよ。
-
アーキテクチャ、フラグ、コンパイラを明記せずに.textサイズを語るのは意味がないと思う。すべてrodataなら別だけど、そうじゃないしね。
-
.bssや.dataを使わないと書いているけど、要はそれ以外の場所にメモリを確保しているってだけで、その事実を知れるのは便利だよ。もちろんコンパイル環境やビルドターゲットに依存するし、「ゼロアロケーション」と呼ぶのは不正確というか、かなりミスリーディングだね。実際にメモリを確保しているコードがこれだ:https://github.com/wolfSSL/wolfCOSE/blob/b90b34abcba90aa7b8a895f4038616f3eb140308/src/wolfcose.c#L71 たったポインタ1つ分だとしても、埋め込み開発でスタックサイズと格闘したことがある人ならわかるはず。sscanfとかを使っててスタックが足りなくなって増やす羽目になるやつだよ。このコードも場合によってはスタック上に数百から数千バイト確保するはず。それが許容範囲ならいいけど、スタックを使っているからといって「ゼロアロケーション」と謳うのは良くないな。