twonly-app-dependencies/pointycastle/test/signers/ecdsa_signer_test.dart
2025-12-07 16:10:41 +01:00

71 lines
3.1 KiB
Dart

// See file LICENSE for more information.
import 'package:pointycastle/pointycastle.dart';
import 'package:pointycastle/signers/ecdsa_signer.dart';
import '../test/runners/signer.dart';
import '../test/src/null_secure_random.dart';
void main() {
var eccDomain = ECDomainParameters('prime192v1');
// ignore_for_file: non_constant_identifier_names
var Qx = BigInt.parse(
'1498602238651628509310686451034731914387602356706565103527');
var Qy = BigInt.parse(
'6264116558863692852155702059476882343593676720209154057133');
var Q = eccDomain.curve.createPoint(Qx, Qy);
PublicKeyParameter<PublicKey> verifyParams() =>
PublicKeyParameter(ECPublicKey(Q, eccDomain));
var d = BigInt.parse(
'3062713166230336928689662410859599564103408831862304472446');
var privParams = PrivateKeyParameter(ECPrivateKey(d, eccDomain));
ParametersWithRandom<PrivateKeyParameter<PrivateKey>> signParams() =>
ParametersWithRandom(privParams, NullSecureRandom());
runSignerTests(Signer('SHA-1/ECDSA'), signParams, verifyParams, [
'Lorem ipsum dolor sit amet, consectetur adipiscing elit ........',
_newSignature('4165461920577864743570110591887661239883413257826890841803',
'4192466672819485121438972302615731758021595554374647962056'),
'En un lugar de La Mancha, de cuyo nombre no quiero acordarme ...',
_newSignature('4165461920577864743570110591887661239883413257826890841803',
'4124624969901653266585887193504647035526068719224431686679'),
]);
runSignerTests(Signer('SHA-1/DET-ECDSA'), signParams, verifyParams, [
'Lorem ipsum dolor sit amet, consectetur adipiscing elit ........',
_newSignature('6052012072724008730564193612572794050491696411960275629627',
'2161019278549597185578307509265728228343111084484752661213'),
'En un lugar de La Mancha, de cuyo nombre no quiero acordarme ...',
_newSignature('4087581495017442027693712553398765118791696551913571321320',
'4593990646726045634082084213208629584972116888758459298644'),
]);
runSignerTests(
NormalizedECDSASigner(Signer('SHA-1/DET-ECDSA') as ECDSASigner),
signParams,
verifyParams, [
'Lorem ipsum dolor sit amet, consectetur adipiscing elit ........',
_newSignature('6052012072724008730564193612572794050491696411960275629627',
'2161019278549597185578307509265728228343111084484752661213'),
'En un lugar de La Mancha, de cuyo nombre no quiero acordarme ...',
_newSignature('4087581495017442027693712553398765118791696551913571321320',
'1683111088660635129753705209967429428795077884424382985437'),
]);
runSignerTestsFail(
NormalizedECDSASigner(Signer('SHA-1/DET-ECDSA') as ECDSASigner,
enforceNormalized: true),
signParams,
verifyParams,
[
'En un lugar de La Mancha, de cuyo nombre no quiero acordarme ...',
_newSignature(
'4087581495017442027693712553398765118791696551913571321320',
'4593990646726045634082084213208629584972116888758459298644'),
]);
}
ECSignature _newSignature(String r, String s) =>
ECSignature(BigInt.parse(r), BigInt.parse(s));