NEQTO Docs
  • Languages icon日本語
    • English
  • ドキュメント
  • API
  • FAQ

›neqto.js

Getting Started

  • NEQTO Hello World!
  • Tutorial Step 1. NEQTO Console設定
  • Tutorial Step 2. デバイス設定とサービスの開始 (NEQTO Bridge)
  • Tutorial Step 2. デバイス設定とサービスの開始 (STM32 Discovery)
  • Tutorial Step 2. デバイス設定とサービスの開始 (SPRESENSE)
  • Tutorial Step 3. スクリプトを使ったアプリケーション開発

NEQTO

  • NEQTO アカウント登録
  • サブアカウント
  • APIの利用
  • GCP用NEQTO CloudSync
  • NEQTO Engineファームウェアリスト
  • お問い合わせに関するガイドライン

NEQTO Console

  • はじめに
  • 基本情報
  • 管理者専用の操作
  • デバイス管理
  • Linuxデバイス管理
  • 一括登録
  • スクリプト
  • アクション & コンタクト
  • Consoleでデータを表示
  • NEQTO Apps

    • NEQTO Apps について
    • NEQTO Infinitypool
    • NEQTO Insights
    • NEQTO Custodia
    • NEQTO Flow
  • Machine Driver
  • 推奨ブラウザ
  • 請求情報

SPRESENSE

    ハードウェア仕様

    • 01. About Spresense

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. 初期インストール
    • 03. Spresense Wi-Fi 初期設定
    • 04. Spresense LTE-M 初期設定
    • 05. デバッグログ取得方法
    • 06. システムLED動作
    • 07. イベントメッセージ
    • 08. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. GPIO
    • 12. UART
    • 13. SPI
    • 14. I2C
    • 15. ADC
    • 16. GNSS
    • 17. Camera
    • 18. Utils
    • 19. nqSpresense
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi
    • 24. nqLte

STM32 Discovery

    ハードウェア仕様

    • 01. About STM32 Discovery Kit (B-L4S5I-IOT01A)

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. 初期インストール
    • 03. STM32 Discovery Wi-Fi 初期設定
    • 04. デバッグログ取得方法
    • 05. システムLED動作
    • 06. イベントメッセージ
    • 07. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. UserSW
    • 12. GPIO
    • 13. UART
    • 14. SPI
    • 15. I2C
    • 16. ADC
    • 18. Utils
    • 19. nqDiscovery
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi

NEQTO Bridge

    ハードウェア仕様

    • 01. NEQTO Bridge Module
    • 02. NEQTO Bridge Wi-Fi Module
    • 03. NEQTO Bridge LTE-1 Module
    • 04. NEQTO Bridge LTE-M/NB Module
    • 05. NEQTO Bridge IO Board
    • 06. NEQTO Bridge Digital IO Board
    • 07. NEQTO Bridge Connector Board

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. NEQTO Bridge Wi-Fi Module 初期設定
    • 03. NEQTO Bridge LTE Module 初期設定
    • 04. デバッグログ取得方法
    • 05. システムLED動作
    • 06. イベントメッセージ
    • 07. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. UserSW
    • 12. GPIO
    • 13. UART
    • 14. SPI
    • 15. I2C
    • 16. ADC
    • 17. BLE
    • 18. Utils
    • 19. nqBridge
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi
    • 24. nqLte
    • 25. nqLAN
    • 26. nqEx

Linux-based device

    ソフトウェア仕様

    • 01. システム要件
    • 02. インストール
    • 03. ソフトウェア構成
    • 04. 動作フロー
    • 05. デバッグログ取得方法
    • 06. イベントメッセージ
    • 07. ソフトウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. RTC
    • 10. UNIXSocket
    • 11. FileSystem
    • 12. SubProcess
    • 13. Utils
    • 14. nqLinux
    • 15. nqService
    • 16. nqMqtt
    • 17. nqFOTA
    • 18. nqLAN

neqto.js Libraries

  • About neqto.js Libraries
  • UART

    • GM65 Barcode Reader
    • SRF Ultrasonic Range Finder - Serial Mode

    I2C

    • HTS221 v2 Temperature and Humidity Sensor
    • LIS2DW12 v2 Accelerometer
    • SRF Ultrasonic Range Finder - I2C Mode
    • [Archive] HTS221 Temperature and Humidity Sensor
    • [Archive] LIS2DW12 Accelerometer

    Utils

    • RTC Alarm Synchronized Scheduler

    Integration

    • AWS S3 v2
    • AWS IoT Core v2
    • Azure IoT v2
    • GCP IoT Core
    • [Archive] AWS S3
    • [Archive] AWS IoT Core

neqto.js Snippets

  • About neqto.js Snippets
  • DataDog
  • Dropbox
  • Google Sheets
  • InfluxDB
  • Oracle Cloud Object Storage
  • Salesforce
  • SAP Cloud Platform Internet of Things
  • Splunk
  • Niagara

Release Notes

  • NEQTO Console アップデート
  • NEQTO Firmware (Bridge Wi-Fi/LTE Module) リリース
  • NEQTO Firmware (STM32 Discovery Wi-Fi) リリース
  • NEQTO Firmware (Spresense Wi-Fi/LTE-M) リリース
  • NEQTO Engine Linux版 リリース

07. Secure

secureオブジェクトは、セキュリティ関連の演算とデータの暗号化復号化機能を提供する組み込みオブジェクトです。

機能概要:

  • HMAC演算をサポートします。
  • SHA-256ハッシュ演算をサポートします。
  • Base64エンコード/デコードをサポートします。
  • データ暗号化/復号化をサポートします。
  • 署名演算/検証をサポートします。



secure Global Object

Methods()/PropertiesSummaryVersionNote
secure.setHmac()HMAC演算をセットアップします。01.00.00+
secure.hmacUpdate()HMAC演算対象のデータストリームを追加します。01.00.00+
secure.hmacDigest()HMAC値を出力します。01.00.00+
secure.freeHmac()HMAC演算リソースを解放します。01.00.00+
secure.startSha256()SHA-256ハッシュ演算を開始します。01.00.00+
secure.updateSha256()SHA-256ハッシュ演算対象のデータストリームを追加します。01.00.00+
secure.finishSha256()SHA-256ハッシュ値を出力します。01.00.00+
secure.base64Encode()与えられたデータに対してBase64エンコードを行います。01.00.00+
secure.base64Decode()与えられたデータに対してBase64デコードを行います。01.00.00+
secure.genKey()非対称暗号化方式のキーペアを作成します。01.00.00+
secure.encPK()指定された公開鍵を使用して、データを暗号化します。01.00.00+
secure.decPK()指定された秘密鍵を使用して、データを復号化します。01.00.00+
secure.setSign()署名演算/検証をセットアップします。01.00.00+
secure.signUpdate()署名演算/検証対象のデータストリームを追加します。01.00.00+
secure.signDigest()署名値を出力します。01.00.00+
secure.verifyDigest()署名検証結果を出力します。01.00.00+
secure.freeSign()署名演算/検証リソースを解放します。01.00.00+



Details

secure.setHmac(algo,key)

HMAC演算をセットアップします。
HMAC演算リソースが確保され、HMAC演算に関連するメソッドが使用可能となります。
尚、同時に複数の演算リソースを持つことはできません。
再セットアップする場合は、secure.hmacDigest()又はsecure.freeHmac()を実行して、一度、演算リソースを解放してください。

NameTypeM/OSummary                                        Note
algostringmandatoryアルゴリズム名
使用するアルゴリズム名を指定します。
次のハッシュアルゴリズムがサポートされています。
'sha256'
keystring, ArrayBuffermandatory秘密鍵
文字列指定とバイナリ指定が可能です。
returnundefined--異常が発生した時は、例外となります。

secure.hmacUpdate(message)

HMAC演算対象のデータストリームを追加します。
このメソッドは継続的に呼び出すことができます。

NameTypeM/OSummary                                        Note
messagestringmandatory演算対象となるデータストリーム
文字列のみ指定可能です。
returnundefined--異常が発生した時は、例外となります。

secure.hmacDigest()

HMAC値をバイナリで出力します。
同時に、HMAC演算リソースが解放されます。

NameTypeM/OSummaryNote
returnArrayBuffer-HMAC値異常が発生した時は、例外となります。

secure.freeHmac()

HMAC演算リソースを解放します。
このメソッドはsecure.hmacDigest()を呼び出す前にHMAC演算を中止する場合に使用します。

NameTypeM/OSummaryNote
returnundefined--

secure.startSha256(data)

SHA-256ハッシュ演算を開始します。
ハッシュ演算リソースが確保され、ハッシュ演算に関連するメソッドが使用可能となります。
尚、同時に複数の演算リソースを持つことはできません。
再スタートする場合は、secure.finishSha256()を実行して、一度、演算リソースを解放してください。

NameTypeM/OSummary                                        Note
datastring, ArrayBufferoptional演算対象となるデータストリーム
文字列指定とバイナリ指定が可能です。
returnundefined--異常が発生した時は、例外となります。

secure.updateSha256(data)

SHA-256ハッシュ演算対象のデータストリームを追加します。
このメソッドは継続的に呼び出すことができます。

NameTypeM/OSummary                                        Note
datastring, ArrayBuffermandatory演算対象となるデータストリーム
文字列指定とバイナリ指定が可能です。
returnundefined--異常が発生した時は、例外となります。

secure.finishSha256(data)

SHA-256ハッシュ値をバイナリで出力します。
同時に、ハッシュ演算リソースが解放されます。

NameTypeM/OSummary                                        Note
datastring, ArrayBufferoptional演算対象となるデータストリーム
文字列指定とバイナリ指定が可能です。
returnArrayBuffer-SHA-256ハッシュ値異常が発生した時は、例外となります。

secure.base64Encode(data)

与えられたデータに対してBase64エンコードを行います。

NameTypeM/OSummary                                        Note
datastring, ArrayBuffermandatoryエンコードするデータ
文字列指定とバイナリ指定が可能です。
returnstring-エンコードデータ異常が発生した時は、例外となります。
動的メモリ不足の場合は、データ量を減らす必要があります。

secure.base64Decode(data)

与えられたデータに対してBase64デコードを行います。出力はバイナリです。

NameTypeM/OSummary                                        Note
datastringmandatoryエンコードされたデータ
文字列のみ指定可能です。
returnArrayBuffer-デコードデータ異常が発生した時は、例外となります。
動的メモリ不足の場合は、データ量を減らす必要があります。

secure.genKey(type[,length])

非対称暗号化方式のキーペアを作成します。
作成された秘密鍵は一時的な内部RAMに保存され、このメソッドが実行される度に更新されます。
この秘密鍵はスクリプト動作中は保持されますが、スクリプトの再読み込みやシステムリセット、スタンバイモード移行の際に破棄されます。

NameTypeM/OSummary                                            Note
typestringmandatory暗号方式名
使用する暗号化方式名を指定します。
次の暗号化方式がサポートされています。
'rsa'
lengthnumberoptional鍵長
設定範囲: 1024~2048
デフォルト値は1024となります。
returnstring-公開鍵 (PEM形式)異常が発生した時は、例外となります。

secure.encPK(pubKey,data)

指定された公開鍵を使用して、データを暗号化します。

NameTypeM/OSummary                                  Note
pubKeystringmandatory指定された公開鍵 (PEM形式)RSA (PKCS#1 v2.1 RSAES-OAEP SHA-256)のみに対応します。
datastringmandatoryプレーンデータ
文字列のみ指定可能です。
設定範囲: 鍵長/8-64-2 (※1)
※1: 鍵長=1024の場合、
1024 / 8 - 64 - 2 = 62
returnArrayBuffer-暗号化データ異常が発生した時は、例外となります。

secure.decPK(encData)

secure.genKey()で作成した秘密鍵を使用して、データを復号化します。

NameTypeM/OSummary                                  Note
encDataArrayBuffermandatory暗号化データRSA (PKCS#1 v2.1 RSAES-OAEP SHA-256)のみに対応します。
returnstring-復号化データ異常が発生した時は、例外となります。

secure.setSign(algo)

署名演算/検証をセットアップします。
署名演算/検証リソースが確保され、署名演算/検証に関連するメソッドが使用可能となります。
尚、同時に複数の演算リソースを持つことはできません。
再セットアップする場合は、secure.signDigest()、secure.verifyDigest()、又はsecure.freeSign()を実行して、一度、演算リソースを解放してください。

NameTypeM/OSummary                                  Note
algostringmandatoryアルゴリズム名
使用するアルゴリズム名を指定します。
次のハッシュアルゴリズムがサポートされています。
'sha256'
returnundefined--異常が発生した時は、例外となります。

secure.signUpdate(message)

署名演算/検証対象のデータストリームを追加します。
このメソッドは継続的に呼び出すことができます。

NameTypeM/OSummary                                                Note
messagestringmandatory演算/検証対象となるデータストリーム
文字列のみ指定可能です。
returnundefined--異常が発生した時は、例外となります。

secure.signDigest([priKey])

署名値をバイナリで出力します。
同時に、署名演算リソースが解放されます。

NameTypeM/OSummaryNote
priKeystringoptional指定された秘密鍵 (PEM形式)
省略時は、secure.genKey()で生成された秘密鍵が使用されます。
RSA (鍵長2048以内)のみに対応します。
returnArrayBuffer-署名値異常が発生した時は、例外となります。

secure.verifyDigest(pubKey,signature)

署名検証結果を出力します。
同時に、署名検証リソースが解放されます。

NameTypeM/OSummary                                          Note
pubKeystringmandatory指定された公開鍵 (PEM形式)RSA (鍵長2048以内)のみに対応します。
signatureArrayBuffermandatory署名値
バイナリでのみ指定可能です。
returnboolean-署名検証結果
成功した場合にはtrueとなります。
異常が発生した時は、例外となります。

secure.freeSign()

署名演算/検証リソースを解放します。
このメソッドはsecure.signDigest()又はsecure.verifyDigest()を呼び出す前にHMAC演算を中止する場合に使用します。

NameTypeM/OSummaryNote
returnundefined--



オブジェクトの使用例

Sample 1

HMAC演算のサンプルです。

var secretKey = '12345';
secure.setHmac('sha256', secretKey);
var payload = 'Hello World!';
secure.hmacUpdate(payload);
var digest_bin = secure.hmacDigest();

Sample 2

Sha-256ハッシュ演算のサンプルです。

var inputData = ['abcde', 'fghijk', 'lmnopqr', 'stuvwxyz' ];
secure.startSha256();
for (var i = 0; i < inputData.length; i++){
  secure.updateSha256(inputData[i]);
}
var hashBin = secure.finishSha256();

Sample 3

Base64エンコードとデコードのサンプルです。

var orgStr = 'abcde';
var b64Str;

ab2string = function(ab) {
  var str = String.fromCharCode.apply(null, new Uint8Array(ab));
  return str;
}

b64Str = secure.base64Encode(orgStr);
print('base64 encode:' + b64Str);

var dec_bin;
decBin = secure.base64Decode(b64Str);
print(ab2string(decBin));

Sample 4

Base64URLエンコードのサンプルです。

var b64Str = secure.base64Encode(targetData).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");

Sample 5

RSAキーペア作成、暗号化、及び復号化のサンプルです。

var key_size = 1024;
var public_key;
public_key = secure.genKey('rsa', key_size);
print('public_key:' + public_key);

var plan_data = '......';//<=1024/8 - 64 -2
var enc_data = secure.encPK(public_key, plan_data);
var dec_data = secure.decPK(enc_data);
print('dec_data:' + dec_data);

Sample 6

RSAキーペア作成、署名、及び署名検証のサンプルです。

var message = 'Hello World!!!';
var key_size = 1024;
var public_key;
var signature;
//key-pair
public_key = secure.genKey('rsa', key_size);
//sign
secure.setSign('sha256');
secure.signUpdate(message);
signature = secure.signDigest();//->genKey()
//verify
var verify_result;
secure.setSign('sha256');
secure.signUpdate(message);
verify_result = secure.verifyDigest(public_key, signature);

print('result:' + verify_result);



Updated: 2020-06-04
← 前次 →
  • secure Global Object
  • Details
    • secure.setHmac(algo,key)
    • secure.hmacUpdate(message)
    • secure.hmacDigest()
    • secure.freeHmac()
    • secure.startSha256(data)
    • secure.updateSha256(data)
    • secure.finishSha256(data)
    • secure.base64Encode(data)
    • secure.base64Decode(data)
    • secure.genKey(type[,length])
    • secure.encPK(pubKey,data)
    • secure.decPK(encData)
    • secure.setSign(algo)
    • secure.signUpdate(message)
    • secure.signDigest([priKey])
    • secure.verifyDigest(pubKey,signature)
    • secure.freeSign()
  • オブジェクトの使用例
    • Sample 1
    • Sample 2
    • Sample 3
    • Sample 4
    • Sample 5
    • Sample 6
NEQTO とはニュースサービスFAQプライバシーポリシー}
NEQTO Console
はじめに基本情報管理者専用の操作デバイス管理NEQTO Apps
NEQTO Bridge
NEQTO Bridge ピン配置NEQTO Bridge Wi-Fi ModuleNEQTO Bridge LTE-1 Moduleデバッグログ取得方法イベントメッセージ
APIのドキュメント
APIの利用グローバル APIリージョン APIAPIサービス利用規約
Jigsaw, Inc.
© 2023 JIG-SAW INC.