From e308d35c746e93e8264dfb6e994d50805a890a17 Mon Sep 17 00:00:00 2001 From: KSAGlory <178437733+KSAGlory@users.noreply.github.com> Date: Sat, 19 Sep 2026 21:38:30 +0200 Subject: [PATCH] docs: move AES-GCM importRawKey example to a separate file --- example/webcrypto/aes_gcm/import_raw_key.dart | 41 +++++++++++++++++++ lib/src/webcrypto/webcrypto.aesgcm.dart | 23 +---------- 2 files changed, 42 insertions(+), 22 deletions(-) create mode 100644 example/webcrypto/aes_gcm/import_raw_key.dart diff --git a/example/webcrypto/aes_gcm/import_raw_key.dart b/example/webcrypto/aes_gcm/import_raw_key.dart new file mode 100644 index 00000000..7b3e3dc9 --- /dev/null +++ b/example/webcrypto/aes_gcm/import_raw_key.dart @@ -0,0 +1,41 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// ignore_for_file: avoid_print + +// #region example +import 'dart:convert' show utf8; +import 'dart:typed_data' show Uint8List; + +import 'package:webcrypto/webcrypto.dart'; + +Future main() async { + final rawKey = Uint8List(16); + fillRandomBytes(rawKey); + + // Import key from raw bytes + final k = await AesGcmSecretKey.importRawKey(rawKey); + + // Use a unique IV for each message. + final iv = Uint8List(16); + fillRandomBytes(iv); + + // Encrypt a message + final c = await k.encryptBytes(utf8.encode('hello world'), iv); + + // Decrypt message (requires the same iv) + print(utf8.decode(await k.decryptBytes(c, iv))); // hello world +} + +// #endregion diff --git a/lib/src/webcrypto/webcrypto.aesgcm.dart b/lib/src/webcrypto/webcrypto.aesgcm.dart index 13066290..8b1ed706 100644 --- a/lib/src/webcrypto/webcrypto.aesgcm.dart +++ b/lib/src/webcrypto/webcrypto.aesgcm.dart @@ -46,29 +46,8 @@ final class AesGcmSecretKey { /// {@macro AES:no-support-for-AES-192} /// /// **Example** - /// ```dart - /// import 'dart:convert' show utf8; - /// import 'dart:typed_data' show Uint8List; - /// import 'package:webcrypto/webcrypto.dart'; - /// - /// Future main() async { - /// final rawKey = Uint8List(16); - /// fillRandomBytes(rawKey); - /// - /// // Import key from raw bytes - /// final k = await AesGcmSecretKey.importRawKey(rawKey); - /// - /// // Use a unique IV for each message. - /// final iv = Uint8List(16); - /// fillRandomBytes(iv); - /// - /// // Encrypt a message - /// final c = await k.encryptBytes(utf8.encode('hello world'), iv); /// - /// // Decrypt message (requires the same iv) - /// print(utf8.decode(await k.decryptBytes(c, iv))); // hello world - /// } - /// ``` + /// {@example /example/webcrypto/aes_gcm/import_raw_key.dart#example} static Future importRawKey(List keyData) async { final impl = await webCryptImpl.aesGcmSecretKey.importRawKey(keyData); return AesGcmSecretKey._(impl);