Microsoft Access でテキストの HMAC SHA1 署名を作成したい
.net オブジェクト System.Security.Cryptography.HMACSHA1 は com で参照できるので、それを使用できると考えました。
オブジェクトを作成してキーを設定することはできますが、compute 関数を呼び出してハッシュを取得しようとすると、実行時エラー 5「Invalid Procedure Call or Argument」というエラーが発生します。
Public Function sign(Key As String, Message As String)
Dim asc, enc
Dim MessageBytes() As bytes, HashBytes() As bytes
Set asc = CreateObject("System.Text.UTF8Encoding")
Set enc = CreateObject("System.Security.Cryptography.HMACSHA1")
enc.Key = asc.GetBytes_4(Key)
MessageBytes = asc.GetBytes_4(Message)
HashBytes = enc.ComputeHash(MessageBytes)
sign = EncodeBase64(HashBytes)
Set asc = Nothing
Set enc = Nothing
End Function
Encoding ビットを Web からコピーしたところ、GetBytes が GetBytes_4 に変換されていることがわかりました。この名前はマングリングですか?ComputeHashに似た何かをする必要がありますか? もしそうなら(私は _n を試しましたが、n = 1から6までは役に立ちませんでした)。
そうでない場合、私は何を間違っていますか?