anchor.diff:      throw UnimplementedError('TODO: implement ECDH');
     }
   
  -  static Future<CryptoKeyPair<EcdhPrivateKey, EcdhPublicKey>> generateKey(
  +  static Future<KeyPair<EcdhPrivateKey, EcdhPublicKey>> generateKey(
       EllipticCurve curve,
     ) {
       ArgumentError.checkNotNull(curve, 'curve');
  
positive.code:     throw UnimplementedError('TODO: implement ECDSA');
    }
  
    static Future<CryptoKeyPair<EcdsaPrivateKey, EcdsaPublicKey>> generateKey(
      EllipticCurve curve,
    ) {
      ArgumentError.checkNotNull(curve, 'curve');
  
negative.code:     throw UnimplementedError('TODO: implement RSA-OAEP');
    }
  
    static Future<KeyPair<RsaOaepPrivateKey, RsaPssPublicKey>> generateKey(
      int modulusLength,
      BigInt publicExponent,
      Hasher hasher,
  