@@ -32,51 +32,52 @@ String _ecdsaCurveToJwkAlg(EllipticCurve curve) {
32
32
throw UnsupportedError ('curve "$curve " is not supported' );
33
33
}
34
34
35
- Future <EcdsaPrivateKey > ecdsaPrivateKey_importPkcs8Key (
35
+ Future <EcdsaPrivateKeyImpl > ecdsaPrivateKey_importPkcs8Key (
36
36
List <int > keyData,
37
37
EllipticCurve curve,
38
38
) async =>
39
- _EcdsaPrivateKey (_importPkcs8EcPrivateKey (keyData, curve));
39
+ _EcdsaPrivateKeyImpl (_importPkcs8EcPrivateKey (keyData, curve));
40
40
41
- Future <EcdsaPrivateKey > ecdsaPrivateKey_importJsonWebKey (
41
+ Future <EcdsaPrivateKeyImpl > ecdsaPrivateKey_importJsonWebKey (
42
42
Map <String , dynamic > jwk,
43
43
EllipticCurve curve,
44
44
) async =>
45
- _EcdsaPrivateKey (_importJwkEcPrivateOrPublicKey (
45
+ _EcdsaPrivateKeyImpl (_importJwkEcPrivateOrPublicKey (
46
46
JsonWebKey .fromJson (jwk),
47
47
curve,
48
48
isPrivateKey: true ,
49
49
expectedUse: 'sig' ,
50
50
expectedAlg: _ecdsaCurveToJwkAlg (curve),
51
51
));
52
52
53
- Future <KeyPair <EcdsaPrivateKey , EcdsaPublicKey >> ecdsaPrivateKey_generateKey (
53
+ Future <KeyPair <EcdsaPrivateKeyImpl , EcdsaPublicKeyImpl >>
54
+ ecdsaPrivateKey_generateKey (
54
55
EllipticCurve curve,
55
56
) async {
56
57
final p = _generateEcKeyPair (curve);
57
58
return createKeyPair (
58
- _EcdsaPrivateKey (p.privateKey),
59
- _EcdsaPublicKey (p.publicKey),
59
+ _EcdsaPrivateKeyImpl (p.privateKey),
60
+ _EcdsaPublicKeyImpl (p.publicKey),
60
61
);
61
62
}
62
63
63
- Future <EcdsaPublicKey > ecdsaPublicKey_importRawKey (
64
+ Future <EcdsaPublicKeyImpl > ecdsaPublicKey_importRawKey (
64
65
List <int > keyData,
65
66
EllipticCurve curve,
66
67
) async =>
67
- _EcdsaPublicKey (_importRawEcPublicKey (keyData, curve));
68
+ _EcdsaPublicKeyImpl (_importRawEcPublicKey (keyData, curve));
68
69
69
- Future <EcdsaPublicKey > ecdsaPublicKey_importSpkiKey (
70
+ Future <EcdsaPublicKeyImpl > ecdsaPublicKey_importSpkiKey (
70
71
List <int > keyData,
71
72
EllipticCurve curve,
72
73
) async =>
73
- _EcdsaPublicKey (_importSpkiEcPublicKey (keyData, curve));
74
+ _EcdsaPublicKeyImpl (_importSpkiEcPublicKey (keyData, curve));
74
75
75
- Future <EcdsaPublicKey > ecdsaPublicKey_importJsonWebKey (
76
+ Future <EcdsaPublicKeyImpl > ecdsaPublicKey_importJsonWebKey (
76
77
Map <String , dynamic > jwk,
77
78
EllipticCurve curve,
78
79
) async =>
79
- _EcdsaPublicKey (_importJwkEcPrivateOrPublicKey (
80
+ _EcdsaPublicKeyImpl (_importJwkEcPrivateOrPublicKey (
80
81
JsonWebKey .fromJson (jwk),
81
82
curve,
82
83
isPrivateKey: false ,
@@ -180,14 +181,40 @@ Uint8List? _convertEcdsaWebCryptoSignatureToDerSignature(
180
181
});
181
182
}
182
183
183
- class _EcdsaPrivateKey implements EcdsaPrivateKey {
184
+ final class _StaticEcdsaPrivateKeyImpl implements StaticEcdsaPrivateKeyImpl {
185
+ const _StaticEcdsaPrivateKeyImpl ();
186
+
187
+ @override
188
+ Future <EcdsaPrivateKeyImpl > importPkcs8Key (
189
+ List <int > keyData, EllipticCurve curve) =>
190
+ ecdsaPrivateKey_importPkcs8Key (keyData, curve);
191
+
192
+ @override
193
+ Future <EcdsaPrivateKeyImpl > importJsonWebKey (
194
+ Map <String , dynamic > jwk,
195
+ EllipticCurve curve,
196
+ ) =>
197
+ ecdsaPrivateKey_importJsonWebKey (jwk, curve);
198
+
199
+ @override
200
+ Future <(EcdsaPrivateKeyImpl , EcdsaPublicKeyImpl )> generateKey (
201
+ EllipticCurve curve,
202
+ ) async {
203
+ final KeyPair <EcdsaPrivateKeyImpl , EcdsaPublicKeyImpl > keyPair =
204
+ await ecdsaPrivateKey_generateKey (curve);
205
+
206
+ return (keyPair.privateKey, keyPair.publicKey);
207
+ }
208
+ }
209
+
210
+ final class _EcdsaPrivateKeyImpl implements EcdsaPrivateKeyImpl {
184
211
final _EvpPKey _key;
185
212
186
- _EcdsaPrivateKey (this ._key);
213
+ _EcdsaPrivateKeyImpl (this ._key);
187
214
188
215
@override
189
216
String toString () {
190
- return 'Instance of \' EcdsaPrivateKey \' ' ;
217
+ return 'Instance of \' EcdsaPrivateKeyImpl \' ' ;
191
218
}
192
219
193
220
@override
@@ -209,14 +236,35 @@ class _EcdsaPrivateKey implements EcdsaPrivateKey {
209
236
Future <Uint8List > exportPkcs8Key () async => _exportPkcs8Key (_key);
210
237
}
211
238
212
- class _EcdsaPublicKey implements EcdsaPublicKey {
239
+ final class _StaticEcdsaPublicKeyImpl implements StaticEcdsaPublicKeyImpl {
240
+ const _StaticEcdsaPublicKeyImpl ();
241
+
242
+ @override
243
+ Future <EcdsaPublicKeyImpl > importRawKey (
244
+ List <int > keyData, EllipticCurve curve) =>
245
+ ecdsaPublicKey_importRawKey (keyData, curve);
246
+
247
+ @override
248
+ Future <EcdsaPublicKeyImpl > importJsonWebKey (
249
+ Map <String , dynamic > jwk,
250
+ EllipticCurve curve,
251
+ ) =>
252
+ ecdsaPublicKey_importJsonWebKey (jwk, curve);
253
+
254
+ @override
255
+ Future <EcdsaPublicKeyImpl > importSpkiKey (
256
+ List <int > keyData, EllipticCurve curve) =>
257
+ ecdsaPublicKey_importSpkiKey (keyData, curve);
258
+ }
259
+
260
+ final class _EcdsaPublicKeyImpl implements EcdsaPublicKeyImpl {
213
261
final _EvpPKey _key;
214
262
215
- _EcdsaPublicKey (this ._key);
263
+ _EcdsaPublicKeyImpl (this ._key);
216
264
217
265
@override
218
266
String toString () {
219
- return 'Instance of \' EcdsaPublicKey \' ' ;
267
+ return 'Instance of \' EcdsaPublicKeyImpl \' ' ;
220
268
}
221
269
222
270
@override
0 commit comments