スマートウォッチPebbleで動作する仮想通貨の自動取引ソフトを作成しようと考えています。

Zaif APIを使って現物公開APIを使用するところまで作成しましたが、取引のためにHMAC-SHA512で署名するやり方がわかりません。なるべくライブラリを使わず、生のJavascriptのみで動作する方法を教えてください。

http://techbureau-api-document.readthedocs.io/ja/latest/trade/1_common.html

回答の条件
  • 1人10回まで
  • 13歳以上
  • 登録:2018/03/06 21:23:27
  • 終了:2018/03/13 21:25:06

回答(1件)

id:kaoato No.1

kaoato回答回数137ベストアンサー獲得回数582018/03/07 16:06:14

ポイント500pt

jsSHA - SHA Hashes in JavaScript
https://caligatio.github.io/jsSHA/

中身は難読化?されてるけど、
生のJavascriptのみで実現されてるようにみえるので、
これを参考にすればどうでしょうか?


難読化?を少し読みやすく変換しても、500行程度です。

id:Red-Comet

それは以前見つけたのですが、すごく難しそうなので見なかったことにしていました(^^;)
500行ぐらいで実装できそうですか!?
KeyとSignを引き渡すだけでポロッと出てくるといいんですが……。

2018/03/07 22:36:13
id:kaoato

>500行ぐらいで実装できそうですか!?

ライブラリを参考にして、自分で同じロジックを組む場合。
ライブラリをそのまま使うなら、たぶん数行なのでは?

>KeyとSignを引き渡すだけでポロッと出てくるといいんですが……。

https://caligatio.github.io/jsSHA/

そのあたりの処理わかりませんが、デモ画面のHMAC Demoで実現できるんじゃないですか?

で、デモ画面のソースをみると

function calcHMAC() {
try {
var hmacText = document.getElementById("hmacInputText");
var hmacTextType = document.getElementById("hmacTextType");
var hmacKeyInput = document.getElementById("hmacInputKey");
var hmacKeyInputType = document.getElementById("hmacKeyType");
var hmacVariant = document.getElementById("hmacVariant");
var hmacOutputType = document.getElementById("hmacOutputType");
var hmacOutput = document.getElementById("hmacOutputText");
var hmacObj = new jsSHA(
hmacVariant.options[hmacVariant.selectedIndex].value,
hmacTextType.options[hmacTextType.selectedIndex].value
);
hmacObj.setHMACKey(
hmacKeyInput.value,
hmacKeyInputType.options[hmacKeyInputType.selectedIndex].value
);
hmacObj.update(hmacText.value);

hmacOutput.value = hmacObj.getHMAC(hmacOutputType.options[hmacOutputType.selectedIndex].value);
} catch(e) {
hmacOutput.value = e.message
}
}


こんな感じになってるかと思います。

jsSHAというのがライブラリのクラスだと思います。

hmacObj.setHMACKeyでキーの設定?
hmacObj.updateでSign?の設定

hmacObj.getHMACで結果を取り出しているのでは?

2018/03/08 01:11:04

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません