anchor.diff:    }
   
     @override
  -  Future<Map<String, dynamic>> exportJsonWebKey() {
  -    throw _notImplemented;
  +  Future<Map<String, dynamic>> exportJsonWebKey() async {
  +    return _JsonWebKey(
  +      kty: 'oct',
  +      use: 'sig',
  +      alg: _hmacJwkAlgFromHash(_hash),
  +      k: _JsonWebKey.encodeBase64UrlNoPadding(_keyData),
  +    ).toJson();
     }
   
     @override
  
positive.code:     try {
        _withDataAsPointer(_keyData, (ffi.Pointer<ssl.Data> p) {
          final n = _keyData.length;
          _checkOp(ssl.HMAC_Init_ex(ctx, p, n, _hash, ffi.nullptr) == 1);
        });
        await _streamToUpdate(data, ctx, ssl.HMAC_Update);
  
  
negative.code: }) async {
    return _HmacSecretKey(
      _asUint8ListZeroedToBitLength(keyData, length),
      _Hash.fromHash(hash),
    );
  }
  
  