cryptography icon indicating copy to clipboard operation
cryptography copied to clipboard

ECDH P521 UnimplementedError

Open a7mdragab opened this issue 4 years ago • 7 comments

Hello, I am using ECDHP521 https://pub.dev/documentation/cryptography/latest/cryptography/ecdhP521-constant.html

When trying final localKeyPair = ecdhP521.newKeyPairSync(); or final localKeyPair = await ecdhP521.newKeyPair();

I got the error

ERROR:flutter/lib/ui/ui_dart_state.cc(171)] Unhandled Exception: UnimplementedError

Can you help? Thanks

a7mdragab avatar Aug 22 '20 14:08 a7mdragab

I have the same issue . Any solution is there?

final algorithm = Ecdh.p256(length: 32);

mariganesh555 avatar May 26 '21 12:05 mariganesh555

The documentation says it is implemented only for web builds (mobile not implemented yet)

xal avatar Jun 18 '21 20:06 xal

Where does it say that? The closest I've been able to find is "We don't have implementations of these in pure Dart", which doesn't mean "only on web" at all.

tutti avatar Jul 15 '21 17:07 tutti

ECDH and ECDSA are supported only in the browser at the moment.

terrier989 avatar Jul 18 '21 02:07 terrier989

Yes, I know that (now). But I'm referring to this (emphasis mine):

The documentation says it is implemented only for web builds (mobile not implemented yet)

Where?

tutti avatar Jul 18 '21 20:07 tutti

In the past you were able to use the webcrypto package for ECDH on Android and iOS but this is no longer working since Flutter 2.5. Is there a chance that this can be implemented in this package now? Otherwise I see no way to use ECDH anymore with Flutter at all :-( Would a bounty help here?

krille-chan avatar Sep 23 '21 08:09 krille-chan

@krillefear: When using web crypto with actual Dart (Dart version 2.14.4) I ran into the same issue (error: "package:webcrypto failed to attached finalizer").

This message is thrown in impl_ffi.utils.dart and in this routine web crypto tries to let the Dart GC delete the no longer used key as fast as possible. I temporary solved this problem by commenting out the line "throw AssertionError('package:webcrypto failed to attached finalizer');".

I already know that this is a security feature (leave a less cryptographic footprint in the memory) but the GC will delete the key when it is not longer in use.

You can follow a possible solution here: https://github.com/google/webcrypto.dart/issues/10

Kind Regards Michael

FlutterCrypto avatar Nov 07 '21 12:11 FlutterCrypto

any update for this ?

PwS avatar Mar 23 '23 02:03 PwS

This package supports ECDH and ECDSA on:

  • Browsers
  • Apple operating systems (iOS, Mac OS X)
  • Android

terrier989 avatar Mar 23 '23 20:03 terrier989

I close the ticket as P521 is now supported on the main platforms (browser, iOS, Android).

It would be nice if we had supported the ECDH/ECDSA on Windows and Linux too. I guess the easiest way to accomplish this would be BoringSSL. Feel free to create a ticket for that. :)

terrier989 avatar Mar 23 '23 20:03 terrier989

If anyone comes across this, the Ecdsa generation does not work on simulator/emulator, only on real devices :)

romgrm avatar Jun 21 '23 07:06 romgrm