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-L542でSigV4Parameters_t sigv4Params
の値を設定する際にAWS_S3_BUCKET_REGION
を参照しているのでリージョンの値は変更できそうです。
AWS_S3_ENDPOINT
のほうはconnectToS3Server
という関数内のhttp_demo_s3_download.c#L936-L937で参照していて接続先の指定に使っているだけのようなのでこちらも変更できそうです。
署名バージョン 4 を使用した AWS リクエストへの署名 - AWS 全般のリファレンスとタスク 3: AWS 署名バージョン 4 の署名を計算する - AWS 全般のリファレンスを見ても署名の計算の際にリージョンは使っていますが、エンドポイントは使ってないのでやはり大丈夫そうです。