import "crypto/subtle"
暗号化コードとして度々使われる便利な機能を実装していますが、正しく使用するよう注意が必要です。
パッケージファイル
constant_time.go
ConstantTimeByteEq関数
func ConstantTimeByteEq(x, y uint8) int
ConstantTimeByteEqは、x == yのとき1を返し、それ以外のときは0を返します。
ConstantTimeCompare関数
func ConstantTimeCompare(x, y []byte) int
ConstantTimeCompareは、xとyの2つのスライスの長さが同じで、等しい内容を持つときだけ1を返します。処理時間はスライスの長さにより異なり、xおよびyの内容には関係しません。
ConstantTimeCopy関数
func ConstantTimeCopy(v int, x, y []byte)
ConstantTimeCopyは、v == 1のときyの内容をxへコピーします。v == 0のときはxは変わりません。vの値が0または1以外のときの動作は未定義です。
ConstantTimeEq関数
func ConstantTimeEq(x, y int32) int
ConstantTimeEqは、x == yのとき1を返します。それ以外のときは0を返します。
ConstantTimeSelect関数
func ConstantTimeSelect(v, x, y int) int
ConstantTimeSelectは、vが1のときはxを返し、vが0のときはyを返します。vの値が0または1以外のときの動作は未定義です。
Trackback URL
Comments