首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >颤振网页不支持Uint64List

颤振网页不支持Uint64List
EN

Stack Overflow用户
提问于 2022-11-21 17:57:17
回答 2查看 40关注 0票数 0

我在flutter (尖城堡库)中使用Uint64List时出错了

代码语言:javascript
运行
复制
var length = Uint8List.view((Uint64List(2)..[0] = iv.length * 8).buffer);

"Error: Unsupported operation: Uint64List not supported on the web.
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 266:49  throw_
dart-sdk/lib/_internal/js_dev_runtime/patch/typed_data_patch.dart 115:5       new
packages/pointycastle/block/modes/gcm.dart 81:36                              [_computeInitialCounter]
packages/pointycastle/block/modes/gcm.dart 61:16                              prepare
packages/pointycastle/src/impl/base_aead_block_cipher.dart 217:5              reset
packages/pointycastle/block/modes/gcm.dart 47:11                              reset
packages/pointycastle/src/impl/base_aead_block_cipher.dart 117:5              init
packages/pointycastle/block/modes/gcm.dart 40:11                              init
packages/crypto_keys/src/symmetric_operator.dart 71:16                        encrypt

你知道怎么解决吗?Thx

EN

回答 2

Stack Overflow用户

发布于 2022-11-22 00:08:11

对于所有的实际值IV长度,您可以拟合32位int值。以下等效代码在Dartpad中运行良好,并给出了与VM中的上述代码相同的结果。

代码语言:javascript
运行
复制
import 'dart:typed_data';

void main() {
  final iv = Uint8List(12);

  final length = Uint8List.view((Uint32List(4)..[0] = iv.length * 8).buffer);

  print(length);
}

同样,这也是:

代码语言:javascript
运行
复制
var len = Uint8List.view((Uint32List(4)
      ..[2] = aad!.length * 8
      ..[0] = _processedBytes * 8)
    .buffer);
票数 0
EN

Stack Overflow用户

发布于 2022-11-23 14:22:55

请回答我的问题?

代码语言:javascript
运行
复制
 @override
  int doFinal(Uint8List out, int outOff) {
    var result = remainingInput.isNotEmpty
        ? processBlock(remainingInput, 0, out, outOff)
        : 0;

    var len = Uint8List.view((Uint64List(2)
          ..[1] = aad!.length * 8
          ..[0] = _processedBytes * 8)
        .buffer);
    len = Uint8List.fromList(len.reversed.toList());

    _gHASHBlock(_x, len);

    _xor(_x, _e0);

    if (forEncryption) {
      out.setAll(outOff + result, _x);
      result += _x.length;
    }

    validateMac();

    return result;
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74523047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档