AWS SigV4のCのライブラリを見つけた

AWS SigV4のCのライブラリを見つけたというメモです。

レポジトリはaws/SigV4-for-AWS-IoT-embedded-sdk: AWS library to sign AWS HTTP requests with Signature Version 4 Signing Process.でorganizationがawsなので公式ライブラリです。

Reference examplesからリンクされているHTTP demosにサンプルコードがあるとのことでちらっと見てみました。

http_demo_s3_download.c#L1383-L1411あたりが主な部分のようです。

私としてはAWS S3互換の他のオブジェクトストレージでも使えるのか、つまり、エンドポイントやリージョンが変更できるかが気になるところです。

http_demo_s3_download.c#L106-L109を見るとAWS_S3_BUCKET_REGIONをビルド時に渡すようになっています。

http_demo_s3_download.c#L162-L167ではAWS_S3_BUCKET_REGIONを参照してAWS_S3_ENDPOINTというのを定義しています。

http_demo_s3_download.c#L528-L542SigV4Parameters_t sigv4Paramsの値を設定する際にAWS_S3_BUCKET_REGIONを参照しているのでリージョンの値は変更できそうです。

AWS_S3_ENDPOINTのほうはconnectToS3Serverという関数内のhttp_demo_s3_download.c#L936-L937で参照していて接続先の指定に使っているだけのようなのでこちらも変更できそうです。

署名バージョン 4 を使用した AWS リクエストへの署名 - AWS 全般のリファレンスタスク 3: AWS 署名バージョン 4 の署名を計算する - AWS 全般のリファレンスを見ても署名の計算の際にリージョンは使っていますが、エンドポイントは使ってないのでやはり大丈夫そうです。