anchor.diff:  
   -type ng_crypto_error() :: no_return() .
   
  --spec ng_crypto_init_nif(atom(), binary(), binary(), boolean()|undefined ) -> crypto_state() | ng_crypto_error()
  +-spec ng_crypto_init_nif(atom(), binary(), binary()|undefined, boolean()|undefined ) -> crypto_state() | ng_crypto_error()
                         ; (crypto_state(), <<>>, <<>>, boolean()) -> crypto_state() | ng_crypto_error().
   ng_crypto_init_nif(_Cipher, _Key, _IVec, _EncryptFlg) -> ?nif_stub.
   
   
   -spec ng_crypto_update_nif(crypto_state(), binary()) -> binary() | ng_crypto_error() .
   ng_crypto_update_nif(_State, _Data) -> ?nif_stub.
  +
  +-spec ng_crypto_update_nif(crypto_state(), binary(), binary()) -> binary() | ng_crypto_error() .
  +ng_crypto_update_nif(_State, _Data, _IV) -> ?nif_stub.
   
   
   -spec ng_crypto_one_shot_nif(atom(), binary(), binary(), binary(), boolean() ) -> binary() | ng_crypto_error().
  
positive.code:                                          Key :: iodata(),
                                           State :: stream_state() .
  stream_init(rc4 = Type, Key) ->
      Ref = ?COMPAT(crypto_init(Type, Key, undefined)),
      {Type, {Ref,flg_undefined}}.
  
  %%%---- stream_encrypt
  
negative.code:         ]).
  
  %% New interface
  -export([crypto_init/4,
           crypto_update/2, crypto_update/3,
           crypto_one_shot/5
          ]).
  
  