開始の手順
セットアップ
- package.jsonファイルの
dependenciesセクションに、以下のライブラリ依存関係を追加します。
使用方法
Vega Crypo機能を使用しているソースファイルで、ターボモジュールから必要なデータ型をインポートします。Cryptoクラスをインスタンス化します。
ECDSAの署名と検証
次のサンプルコードには、ECDSAキーペアの生成、メッセージ署名、検証が含まれています。手順1:ECDSAキービルダーを作成する
手順2:キーペアを生成する
ECDSAキーペアを生成するか、プライベートキーを作成できます。 ECDSAキーペアを生成するには、buildGenerated()を呼び出します。
buildPrivateFromDer()を呼び出します。
手順3:署名コンテキストビルダーを作成する
手順4:メッセージに署名して署名を取得する
手順5:署名付きのメッセージを検証する
RSAの署名と検証
次のサンプルコードには、RSAキーペアの生成、メッセージ署名、検証が含まれています。手順1:RSAキービルダーを作成する
手順2:キーペアを生成する
RSAキーペアを生成するか、プライベートキーを作成できます。 RSAキーペアを生成するには、buildGenerated()を呼び出します。
buildPrivateFromDer()を呼び出します。
手順3:署名コンテキストビルダーを作成してメッセージに署名する
buildSigningContext()を呼び出して署名コンテキストビルダーを作成した後、RSA-PKCS1 v1.5スキームを使用してメッセージに署名し、署名を取得します。
手順4:メッセージを検証する
RSA-PKCS1 v1.5標準を使用するrsaPkcs1Verifier.verify()を呼び出すことにより、署名を使用してメッセージを検証します。
手順5:メッセージに署名して署名を取得する
RSA-PSS標準を使用してメッセージに署名するには、rsaPssSigner.sign()を呼び出します。これは、署名されたメッセージの署名を返します。
rsaPssVerifier.verify()を呼び出し、メッセージの署名を渡します。
HMACの署名と検証
次の例は、シークレットキーを生成してキーをエクスポートし、データに署名した後、検証する方法を示しています。AES CTRブロック暗号を使用したメッセージの暗号化
次の例は、AES-CTRキーを生成してエクスポートし、AES-256 CTR暗号コンテキストビルダーを作成した後、そのコンテキストビルダーを使用してプレーンテキストに署名する方法を示しています。AES GCMブロック暗号を使用したメッセージの暗号化
次の例は、AES-256 GCMキーを生成してエクスポートし、AES-256 GCM暗号コンテキストビルダーを作成した後、そのコンテキストビルダーを使用してプレーンテキストに署名する方法を示しています。RSA-OAEPを使用したメッセージの暗号化
次の例は、RSA-OAEPキーを生成してエクスポートし、コンテキストビルダーを作成した後、そのコンテキストビルダーを使用してプレーンテキストに署名する方法を示しています。メッセージダイジェストの作成
次のコード例では、getDigestAlgorithmByName()を呼び出してダイジェストを取得し、ダイジェストコンテキストを作成した後、サンプル文字列をエンコードして、その文字列のダイジェストを取得しています。
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の呼び出し
次のコード例では、ECDHCryptoKeyPairを生成します。
サポートされている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インスタンスを取得します。
Cryptoクラスをインスタンス化します。
Vega Cryptoの一般的なユースケース
次のコード例は説明用であり、わかりやすいよう簡略化されています。Vega Crypo APIのほとんどのメソッドは、エラーが発生すると例外をスローします。 呼び出しをtry-catchブロックでラップすると、発生したエラーを適切に処理できます。以下に例を示します。手順1:ECDSAキービルダーを作成する
手順2:キーペアを生成する
ECDSAキーペアを生成するか、プライベートキーを作成できます。 ECDSAキーペアを生成するには、buildGenerated()を呼び出します。
buildPrivateFromDer()を呼び出します。
手順3:署名コンテキストビルダーを作成する
手順4:メッセージに署名して署名を取得する
手順5:署名付きのメッセージを検証する
手順1:RSAキービルダーを作成する
手順2:キーペアを生成する
RSAキーペアを生成するか、プライベートキーを作成できます。 RSAキーペアを生成するには、buildGenerated()を呼び出します。
buildPrivateFromDer()を呼び出します。
手順3:署名コンテキストビルダーを作成してメッセージに署名する
buildSigningContext()を呼び出して署名コンテキストビルダーを作成した後、RSA-PKCS1 v1.5スキームを使用してメッセージに署名し、署名を取得します。
手順4:メッセージを検証する
RSA-PKCS1 v1.5標準を使用するrsaPkcs1Verifier.verify()を呼び出すことにより、署名を使用してメッセージを検証します。
手順5:メッセージに署名して署名を取得する
RSA-PSS標準を使用してメッセージに署名するには、rsaPssSigner.sign()を呼び出します。これは、署名されたメッセージの署名を返します。
rsaPssVerifier.verify()を呼び出し、メッセージの署名を渡します。
getDigestAlgorithmByName()を呼び出してダイジェストを取得し、ダイジェストコンテキストを作成した後、サンプル文字列をエンコードして、その文字列のダイジェストを取得しています。
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の呼び出し
次のコード例では、ECDHCryptoKeyPairを生成します。
サポートされている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 - 暗号キーを使用するさまざまな目的または操作を表します。

