Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
Ring
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート
メインコンテンツへスキップ
Vega Crypo APIは、暗号化キーの読み取り、生成、管理などの一般的な暗号化操作を、業界標準のアルゴリズムを使用して実行できるようにする機能を提供します。 注: KeplerCrypto APIをシミュレーターで実行することはサポートされていません。

開始の手順

セットアップ

  1. package.jsonファイルのdependenciesセクションに、以下のライブラリ依存関係を追加します。

使用方法

Vega Crypo機能を使用しているソースファイルで、ターボモジュールから必要なデータ型をインポートします。
KeplerCryptoターボモジュールを利用するには、必ず初めにCryptoクラスをインスタンス化します。
次のコード例は説明用であり、わかりやすいよう簡略化されています。Vega Crypo APIのほとんどのメソッドは、エラーが発生すると例外をスローします。 呼び出しをtry-catchブロックでラップすると、発生したエラーを適切に処理できます。
特定のメソッドがスローする特定の例外については、ドキュメントを確認してください。

ECDSAの署名と検証

次のサンプルコードには、ECDSAキーペアの生成、メッセージ署名、検証が含まれています。

手順1:ECDSAキービルダーを作成する

手順2:キーペアを生成する

ECDSAキーペアを生成するか、プライベートキーを作成できます。 ECDSAキーペアを生成するには、buildGenerated()を呼び出します。
既存のDER文字列からプライベートキーを作成するには、buildPrivateFromDer()を呼び出します。
</viv>

手順3:署名コンテキストビルダーを作成する

手順4:メッセージに署名して署名を取得する

手順5:署名付きのメッセージを検証する

RSAの署名と検証

次のサンプルコードには、RSAキーペアの生成、メッセージ署名、検証が含まれています。

手順1:RSAキービルダーを作成する

手順2:キーペアを生成する

RSAキーペアを生成するか、プライベートキーを作成できます。 RSAキーペアを生成するには、buildGenerated()を呼び出します。
既存のDER文字列からプライベートキーを作成するには、buildPrivateFromDer()を呼び出します。

手順3:署名コンテキストビルダーを作成してメッセージに署名する

buildSigningContext()を呼び出して署名コンテキストビルダーを作成した後、RSA-PKCS1 v1.5スキームを使用してメッセージに署名し、署名を取得します。

手順4:メッセージを検証する

RSA-PKCS1 v1.5標準を使用するrsaPkcs1Verifier.verify()を呼び出すことにより、署名を使用してメッセージを検証します。

手順5:メッセージに署名して署名を取得する

RSA-PSS標準を使用してメッセージに署名するには、rsaPssSigner.sign()を呼び出します。これは、署名されたメッセージの署名を返します。
メッセージを検証するには、rsaPssVerifier.verify()を呼び出し、メッセージの署名を渡します。

HMACの署名と検証

次の例は、シークレットキーを生成してキーをエクスポートし、データに署名した後、検証する方法を示しています。
AES CBCブロック暗号を使用したメッセージの暗号化 次の例は、AES-256キーを生成してエクスポートし、AES-256 CBC暗号コンテキストビルダーを作成した後、そのコンテキストビルダーを使用してプレーンテキストに署名する方法を示しています。

AES CTRブロック暗号を使用したメッセージの暗号化

次の例は、AES-CTRキーを生成してエクスポートし、AES-256 CTR暗号コンテキストビルダーを作成した後、そのコンテキストビルダーを使用してプレーンテキストに署名する方法を示しています。

AES GCMブロック暗号を使用したメッセージの暗号化

次の例は、AES-256 GCMキーを生成してエクスポートし、AES-256 GCM暗号コンテキストビルダーを作成した後、そのコンテキストビルダーを使用してプレーンテキストに署名する方法を示しています。

RSA-OAEPを使用したメッセージの暗号化

次の例は、RSA-OAEPキーを生成してエクスポートし、コンテキストビルダーを作成した後、そのコンテキストビルダーを使用してプレーンテキストに署名する方法を示しています。

メッセージダイジェストの作成

次のコード例では、getDigestAlgorithmByName()を呼び出してダイジェストを取得し、ダイジェストコンテキストを作成した後、サンプル文字列をエンコードして、その文字列のダイジェストを取得しています。
HKDF(HMACキー導出関数)を使用したキー導出

PBKDF2(パスワードベースのキー導出関数2)を使用したキー導出

Web Crypto APIシムレイヤー

KeplerCryptoライブラリは、Web Crypto APIを実装するシムレイヤーを提供します。APIのメソッドとパラメーターについては、既存のWeb Crypto APIに関するMDNのドキュメントを参照しています。

Web Cryptoの使用例

次の例は、Web Crypto APIシムレイヤーをインポートして使用する方法を示しています。

APIのインポート

WebCryptoオブジェクトの初期化

省略可能:globalThisへのcryptoインスタンスの公開

Web Crypto APIの呼び出し

次のコード例では、ECDH CryptoKeyPairを生成します。

サポートされているWeb Cryptoアルゴリズム

このライブラリは現在開発中であり、このWeb Cryptoの実装ではW3C Web Crypto仕様全体のサブセットが提供されます。今後のバージョンで、より多くの操作がサポートされる予定です。 注: deriveKeyは、Web Cryptoシムレイヤーの実装ではサポートされていません。
キー導出機能については、上記の「HKDFを使用したキー導出」および「PBKDF2を使用したキー導出」の例に示すように、標準のVega Crypto APIを使用してください。

Web Cryptoでサポートされているキー形式

Web Crypto APIを使用してキーをインポートおよびエクスポートする場合、次の形式がサポートされます。 形式の説明:
  • raw:対称キー(AESまたはHMAC)または楕円曲線パブリックキーに使用されるフォーマットされていないバイナリデータ。
  • pkcs8:RSAまたは楕円曲線プライベートキーに使用されるPKCS #8形式。
  • spki:RSAまたは楕円曲線パブリックキーに使用されるSubjectPublicKeyInfo形式。
  • jwk:JSONウェブキー形式(すべてのキータイプでサポートされます)。
キーのインポートの例:

Web Crypto APIのサポートマトリックス

アルゴリズム操作:
  • ✓ = サポート
  • ✗ = 非サポート

Vega Cryptoの概要

Vega Crypo APIは、暗号化キーの読み取り、生成、管理などの一般的な暗号化操作を、業界標準のアルゴリズムを使用して実行できるようにする機能を提供します。

開始の手順

Vega Crypto APIはKepler SDKの一部として提供されています。

Vega Cryptoのインストールとセットアップ

このAPIをプロジェクトに追加するには、アプリのルートディレクトリにあるpackage.jsonファイルを開き、次の依存関係を追加します。

アプリでのVega Crypto APIの使用

Vega Crypo機能を使用しているソースファイルで、ターボモジュールから必要なデータ型をインポートします。
次に、Cryptoインスタンスを取得します。
Vega Cryptoターボモジュールを利用するには、必ず初めにCryptoクラスをインスタンス化します。

Vega Cryptoの一般的なユースケース

次のコード例は説明用であり、わかりやすいよう簡略化されています。Vega Crypo APIのほとんどのメソッドは、エラーが発生すると例外をスローします。 呼び出しをtry-catchブロックでラップすると、発生したエラーを適切に処理できます。以下に例を示します。
呼び出すメソッドのドキュメントで、そのメソッドがスローする具体的な例外を確認してください。 注:このターボモジュールをシミュレーターで実行することはサポートされていません。 ECDSAの署名と検証 次のサンプルコードには、ECDSAキーペアの生成、メッセージ署名、検証が含まれています。

手順1:ECDSAキービルダーを作成する

手順2:キーペアを生成する

ECDSAキーペアを生成するか、プライベートキーを作成できます。 ECDSAキーペアを生成するには、buildGenerated()を呼び出します。
既存のDER文字列からプライベートキーを作成するには、buildPrivateFromDer()を呼び出します。

手順3:署名コンテキストビルダーを作成する

手順4:メッセージに署名して署名を取得する

手順5:署名付きのメッセージを検証する

RSAの署名と検証 次のサンプルコードには、RSAキーペアの生成、メッセージ署名、検証が含まれています。

手順1:RSAキービルダーを作成する

手順2:キーペアを生成する

RSAキーペアを生成するか、プライベートキーを作成できます。 RSAキーペアを生成するには、buildGenerated()を呼び出します。
既存のDER文字列からプライベートキーを作成するには、buildPrivateFromDer()を呼び出します。

手順3:署名コンテキストビルダーを作成してメッセージに署名する

buildSigningContext()を呼び出して署名コンテキストビルダーを作成した後、RSA-PKCS1 v1.5スキームを使用してメッセージに署名し、署名を取得します。

手順4:メッセージを検証する

RSA-PKCS1 v1.5標準を使用するrsaPkcs1Verifier.verify()を呼び出すことにより、署名を使用してメッセージを検証します。

手順5:メッセージに署名して署名を取得する

RSA-PSS標準を使用してメッセージに署名するには、rsaPssSigner.sign()を呼び出します。これは、署名されたメッセージの署名を返します。
メッセージを検証するには、rsaPssVerifier.verify()を呼び出し、メッセージの署名を渡します。
HMACの署名と検証 次の例は、シークレットキーを生成してキーをエクスポートし、データに署名した後、検証する方法を示しています。
AES CBCブロック暗号を使用したメッセージの暗号化 次の例は、AES-256キーを生成してエクスポートし、AES-256 CBC暗号コンテキストビルダーを作成した後、そのコンテキストビルダーを使用してプレーンテキストを暗号化する方法を示しています。
AES CTRブロック暗号を使用したメッセージの暗号化 次の例は、AES-CTRキーを生成してエクスポートし、AES-256 CTR暗号コンテキストビルダーを作成した後、そのコンテキストビルダーを使用してプレーンテキストを暗号化する方法を示しています。
AES GCMブロック暗号を使用したメッセージの暗号化 次の例は、AES-256 GCMキーを生成してエクスポートし、AES-256 GCM暗号コンテキストビルダーを作成した後、そのコンテキストビルダーを使用してプレーンテキストを暗号化する方法を示しています。
RSA-OAEPを使用したメッセージの暗号化 次の例は、RSA-OAEPキーを生成してエクスポートし、コンテキストビルダーを作成した後、そのコンテキストビルダーを使用してプレーンテキストを暗号化する方法を示しています。
メッセージダイジェストの作成 次のコード例では、getDigestAlgorithmByName()を呼び出してダイジェストを取得し、ダイジェストコンテキストを作成した後、サンプル文字列をエンコードして、その文字列のダイジェストを取得しています。
HKDF(HMACキー導出関数)を使用したキー導出
PBKDF2(パスワードベースのキー導出関数2)を使用したキー導出

Web Crypto APIシムレイヤー

Vega Cryptoライブラリは、Web Crypto APIを実装するシムレイヤーを提供します。APIのメソッドとパラメーターについては、既存のWeb Crypto APIに関するMDNのドキュメントを参照しています。

Web Cryptoの使用例

次の例は、Web Crypto APIシムレイヤーをインポートして使用する方法を示しています。

APIのインポート

WebCryptoオブジェクトの初期化

省略可能:globalThisへのcryptoインスタンスの公開

Web Crypto APIの呼び出し

次のコード例では、ECDH CryptoKeyPairを生成します。

サポートされているWeb Cryptoアルゴリズム

このライブラリは現在開発中であり、このWeb Cryptoの実装ではW3C Web Crypto仕様全体のサブセットが提供されます。今後のバージョンで、より多くの操作がサポートされる予定です。

Web Cryptoでサポートされているキー形式

Web Crypto APIを使用してキーをインポートおよびエクスポートする場合、次の形式がサポートされます。 形式の説明:
  • raw:対称キーまたは楕円曲線パブリックキーに使用されるフォーマットされていないバイナリデータ。
  • pkcs8:RSAまたは楕円曲線プライベートキーに使用されるPKCS #8形式。
  • spki:RSAまたは楕円曲線パブリックキーに使用されるSubjectPublicKeyInfo形式。
  • jwk:対称キーまたはRSAおよび楕円曲線パブリック/プライベートキーに使用されるJSONウェブキー形式。
キーのインポートの例:

Web Crypto APIのサポートマトリックス

アルゴリズム操作:
  • ✓ = サポート
  • ✗ = サポート対象外
  • —= 該当なし

APIリファレンス

クラス

  • AsymmetricAlgorithm - 非対称暗号アルゴリズムを表します。
  • AsymmetricCipherContextBuilder - 非対称暗号化操作のコンテキスト作成をサポートします。
  • AsymmetricKeyBuilder - 非対称キーの作成およびインポート用ビルダークラス。
  • CbcContextBuilder - CBC(暗号ブロック連鎖)暗号コンテキストの作成をサポートします。
  • Crypto - 暗号化操作のための包括的なインターフェイスを提供します。
  • CryptoKey - Web Crypto APIのCryptoKeyインターフェイスは暗号キーを表します。
  • CtrContextBuilder - CTR(Counter)モードの暗号コンテキストの作成をサポートします。
  • DecryptionContext - 復号コンテキストを表します。
  • DigestAlgorithm - 暗号化ハッシュで使用されるダイジェストアルゴリズムを表します。
  • DigestContext - 暗号ダイジェスト(ハッシュ)を計算するためのコンテキストを表します。
  • DigestContextBuilder - ダイジェスト(ハッシュ)コンテキストの作成をサポートします。
  • EccCurve - 楕円曲線暗号(ECC)の暗号曲線を表します。
  • EcdhContextBuilder - ECDHキー交換コンテキストの作成をサポートします。
  • EcdhKeyExchangeContext - ECDHキー交換操作を実行するためのコンテキストを表します。
  • EncryptionContext - 暗号化コンテキストを表します。
  • GcmContextBuilder - GCM(ガロア/カウンターモード)暗号コンテキストの作成をサポートします。
  • HkdfContextBuilder - HKDFキー導出コンテキストの作成をサポートします。
  • HmacContext - HMAC(ハッシュベースのメッセージ認証コード)コンテキストを表します。
  • HmacContextBuilder - HMAC(ハッシュベースのメッセージ認証コード)コンテキストの作成をサポートします。
  • InternalNativeOperationError - KeplerCryptoターボモジュールの内部ネイティブ操作が失敗した場合にスローされるエラー。
  • KeplerCryptoTurboModuleError - KeplerCryptoターボモジュールによってスローされる例外の基底カスタムエラークラス。
  • KeyDerivationContext - キー導出操作を実行するためのコンテキストを表します。
  • Pbkdf2ContextBuilder - PBKDF2キー導出コンテキストの作成をサポートします。
  • PrivateKey - 非対称暗号で使用されるプライベートキーを表します。
  • PublicKey - 非対称暗号で使用されるパブリックキーを表します。
  • RsaKeyBuilder - RSAキーを作成するためのビルダークラス。
  • RsaOaepContextBuilder - OAEP(最適非対称暗号パディング)を使用して、RSA暗号のコンテキストを作成します。
  • RsaOaepKeyBuilder - OAEP(最適非対称暗号パディング)を使用してRSAキーを作成するためのビルダークラスです。
  • RsassaPkcs1ContextBuilder - RSASSA-PKCS1-v1_5署名コンテキストの作成をサポートします。
  • RsassaPssContextBuilder - RSASSA-PSS署名コンテキストの作成をサポートします。
  • SignatureContextBuilder - 署名コンテキストの作成をサポートします。
  • SigningContext - 署名コンテキストを表します。
  • SymmetricAlgorithm - 対称暗号アルゴリズムを表します。
  • SymmetricKey - 暗号化操作に使用される対称キーを表します。
  • SymmetricKeyBuilder - 対称キーを作成およびインポートするためのビルダークラスです。
  • VerificationContext - 検証コンテキストを表します。
  • WebCrypto - 暗号化操作のための包括的なインターフェイスを提供します。
  • WrappingContext - ラッピングコンテキストを表します。
  • WrappingScheme - 暗号キーを安全にラッピング(暗号化)するための複数の方法を表します。

インターフェイス

  • CryptoKeyPair - Web Crypto APIのCryptoKeyPairディクショナリは非対称暗号化アルゴリズムのキーペアを表します。

列挙型

  • KeyPurpose - 暗号キーを使用するさまざまな目的または操作を表します。

最終更新日 2026年10月26日