NEPLg2 Standard Library - sha256 - sha256
Web Playground
Web Playground

sha256

SHA-256 将来実装しょうらいじっそうのための draft state

目的もくてき

  • SHA-256 けい API のかたちを stdlib ないさき固定こていします。
  • 現状げんじょうは buffering だけをおこない、後続 batch で本物ほんものの digest 計算けいさんえられる足場あしばたもちます。

実装じっそう

  • Sha256Vec<i32> buffer を保持ほじします。
  • update は byte を buffer へみ、finalize現状げんじょうでは buffer をそのままかえします。

注意ちゅうい

  • まだ SHA-256 digest は計算けいさんしていません。
  • 現在げんざいfinalize は debug / scaffold 用途ようとです。

計算量けいさんりょう

  • updateVec push にしたが償却しょうきゃく O(1) です。
  • finalize は O(1) で buffer ownership をかえします。

Sha256: 構造体の概要

目的もくてき:

  • Sha256 の主な用途と呼び出し方を示します。

実装じっそう:

  • 定義済み処理をそのまま呼び出す薄いラッパで構成されています。

注意ちゅうい:

  • 引数の値は関数呼び出しで移動するため、再利用時は束縛し直してください。

計算量けいさんりょう:

  • 定義そのものは O(1) です。

new_sha256: 主な用途

目的もくてき:

  • からの buffer をSha256 state をつくります。

実装じっそう:

  • Vec<i32> の empty buffer を初期値しょきちとして保持ほじします。

計算量けいさんりょう:

  • Vec 初期化にしたがう O(1)

sha256_update: 主な用途

目的もくてき:

  • byte を 1 buffer へ追加ついかした新しい state をかえします。

実装じっそう:

  • 現状げんじょうは digest 圧縮ではなく Vec push のみです。

計算量けいさんりょう:

  • 償却しょうきゃく O(1)

sha256_finalize: 主な用途

目的もくてき:

  • 現状げんじょう buffer をして scaffold の動作どうさ確認かくにんします。

実装じっそう:

  • 本物の digest 計算はまだ未実装みじっそうです。

計算量けいさんりょう:

  • O(1)