anchor.diff:      throw UnimplementedError('TODO: implement ECDSA');
     }
   
  -  static Future<CryptoKeyPair<EcdsaPrivateKey, EcdsaPublicKey>> generateKey(
  +  static Future<KeyPair<EcdsaPrivateKey, EcdsaPublicKey>> generateKey(
       EllipticCurve curve,
     ) {
       ArgumentError.checkNotNull(curve, 'curve');
  
positive.code:     throw UnimplementedError('TODO: implement RSA-OAEP');
    }
  
    static Future<CryptoKeyPair<RsaOaepPrivateKey, RsaPssPublicKey>> generateKey(
      int modulusLength,
      BigInt publicExponent,
      Hasher hasher,
  
negative.code:   /// ```
    ///
    /// [1]: https://chromium.googlesource.com/chromium/src/+/43d62c50b705f88c67b14539e91fd8fd017f70c4/components/webcrypto/algorithms/rsa.cc#286
    static Future<KeyPair<RsassaPkcs1V15PrivateKey, RsassaPkcs1V15PublicKey>>
        generateKey(int modulusLength, BigInt publicExponent, Hasher hasher) {
      ArgumentError.checkNotNull(modulusLength, 'modulusLength');
      ArgumentError.checkNotNull(publicExponent, 'publicExponent');
  