anchor.diff:  secretbox(Msg, Nonce, Key) ->
       case iolist_size(Msg) of
           K when K =< ?SECRETBOX_SIZE ->
  -          bump(enacl_nif:crypto_secretbox_b([s_zerobytes(), Msg], Nonce, Key),
  +          bump(enacl_nif:crypto_secretbox_b([?S_ZEROBYTES, Msg], Nonce, Key),
                  ?SECRETBOX_REDUCTIONS,
                  ?SECRETBOX_SIZE,
                  K);
           _ ->
  -          enacl_nif:crypto_secretbox([s_zerobytes(), Msg], Nonce, Key)
  +          enacl_nif:crypto_secretbox([?S_ZEROBYTES, Msg], Nonce, Key)
       end.
   %% @doc secretbox_open/3 opens a sealed box.
   %%
  
positive.code: secretbox_open(CipherText, Nonce, Key) ->
      case iolist_size(CipherText) of
          K when K =< ?SECRETBOX_SIZE ->
            R = case enacl_nif:crypto_secretbox_open_b([s_box_zerobytes(), CipherText],
                                                       Nonce, Key) of
                    {error, Err} -> {error, Err};
                    Bin when is_binary(Bin) -> {ok, Bin}
                end,
            bump(R, ?SECRETBOX_OPEN_REDUCTIONS, ?SECRETBOX_SIZE, K);
          _ ->
            case enacl_nif:crypto_secretbox_open([s_box_zerobytes(), CipherText], Nonce, Key) of
                {error, Err} -> {error, Err};
                Bin when is_binary(Bin) -> {ok, Bin}
            end
  
negative.code:     case iolist_size(CipherText) of
          K when K =< ?BOX_AFTERNM_SIZE ->
             R =
              case enacl_nif:crypto_box_open_afternm_b([?P_BOXZEROBYTES, CipherText], Nonce, Key) of
                {error, Err} -> {error, Err};
                Bin when is_binary(Bin) -> {ok, Bin}
              end,
             bump(R, ?BOX_AFTERNM_REDUCTIONS, ?BOX_AFTERNM_SIZE, K);
          _ ->
              case enacl_nif:crypto_box_open_afternm([?P_BOXZEROBYTES, CipherText], Nonce, Key) of
                {error, Err} -> {error, Err};
                Bin when is_binary(Bin) -> {ok, Bin}
              end
  