anchor.diff:      notsup(fun crypto:block_encrypt/N, Args),
       notsup(fun crypto:block_decrypt/N, Args).
   %%--------------------------------------------------------------------
  +api_ng() ->
  +     [{doc, "Test new api"}].
  +
  +api_ng(Config) when is_list(Config) ->
  +    Fips = proplists:get_bool(fips, Config),
  +    Type = ?config(type, Config),
  +    Blocks = lazy_eval(proplists:get_value(block, Config, [])),
  +    Streams = lazy_eval(proplists:get_value(stream, Config, [])),
  +    lists:foreach(fun api_ng_cipher_increment/1, Blocks++Streams).
  +
  +
  +api_ng_cipher_increment({Type, Key, PlainTexts}=_X) ->
  +    ct:log("~p",[_X]),
  +    api_ng_cipher_increment({Type, Key, <<>>, PlainTexts});
  +
  +api_ng_cipher_increment({Type, Key, IV, PlainTexts}=_X) ->
  +    ct:log("~p",[_X]),
  +    api_ng_cipher_increment({Type, Key, IV, PlainTexts, undefined});
  +
  +api_ng_cipher_increment({Type, Key, IV, PlainText0, ExpectedEncText}=_X) ->
  +    ct:log("~p",[_X]),
  +    PlainTexts = iolistify(PlainText0),
  +    {ok,RefEnc} = crypto:crypto_init(Type, Key, IV, true),
  +    {ok,RefDec} = crypto:crypto_init(Type, Key, IV, false),
  +    EncTexts = api_ng_cipher_increment_loop(RefEnc, PlainTexts),
  +    Enc = iolist_to_binary(EncTexts),
  +    case ExpectedEncText of
  +        undefined ->
  +            ok;
  +        Enc ->
  +            ok;
  +        OtherEnc ->
  +            ct:fail({{crypto, api_ng_encrypt, [IV,EncTexts]}, {expected, ExpectedEncText}, {got, OtherEnc}})
  +    end,
  +    Plain = iolist_to_binary(PlainTexts),
  +    case iolist_to_binary(api_ng_cipher_increment_loop(RefDec, EncTexts)) of
  +        Plain ->
  +            ok;
  +        OtherPT ->
  +	    ct:fail({{crypto, api_ng_decrypt, [IV,EncTexts]}, {expected, Plain}, {got, OtherPT}})
  +    end.
  +
  +
  +api_ng_cipher_increment_loop(Ref, InTexts) ->
  +    lists:map(fun(Txt) ->
  +                      case crypto:crypto_update(Ref, Txt) of
  +                          Bin when is_binary(Bin) ->
  +                              Bin;
  +                          {error,Error} ->
  +                              ct:pal("Txt = ~p",[Txt]),
  +                              ct:fail("~p",[Error])
  +                      end
  +              end, InTexts).
  +
  +%%--------------------------------------------------------------------
   no_aead() ->
        [{doc, "Test disabled aead ciphers"}].
   no_aead(Config) when is_list(Config) ->
  
positive.code:         Other ->
              ct:fail({{crypto, cmac, [Type, Key, Text, Size]}, {expected, ExpCMac}, {got, Other}})
      end.
  
  block_cipher({Type, Key,  PlainText}) ->
      Plain = iolist_to_binary(PlainText),
  
negative.code: %%
  %%     http://www.apache.org/licenses/LICENSE-2.0
  %%
  
  %% distributed under the License is distributed on an "AS IS" BASIS,
  %% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  %% See the License for the specific language governing permissions and
  