cryptography
cryptography copied to clipboard
ECDH P521 UnimplementedError
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
I have the same issue . Any solution is there?
final algorithm = Ecdh.p256(length: 32);
The documentation says it is implemented only for web builds (mobile not implemented yet)
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.
ECDH and ECDSA are supported only in the browser at the moment.
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?
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?
@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
any update for this ?
This package supports ECDH and ECDSA on:
- Browsers
- Apple operating systems (iOS, Mac OS X)
- Android
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. :)
If anyone comes across this, the Ecdsa generation does not work on simulator/emulator, only on real devices :)