security/nss/lib/freebl/secmpi.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 #include "mpi.h"
     7 #define CHECK_SEC_OK(func) if (SECSuccess != (rv = func)) goto cleanup
     9 #define CHECK_MPI_OK(func) if (MP_OKAY > (err = func)) goto cleanup
    11 #define OCTETS_TO_MPINT(oc, mp, len) \
    12     CHECK_MPI_OK(mp_read_unsigned_octets((mp), oc, len))
    14 #define SECITEM_TO_MPINT(it, mp) \
    15     CHECK_MPI_OK(mp_read_unsigned_octets((mp), (it).data, (it).len))
    17 #define MPINT_TO_SECITEM(mp, it, arena)                         \
    18  do { int mpintLen = mp_unsigned_octet_size(mp);                \
    19     if (mpintLen <= 0) {err = MP_RANGE; goto cleanup;}          \
    20     SECITEM_AllocItem(arena, (it), mpintLen);                   \
    21     if ((it)->data == NULL) {err = MP_MEM; goto cleanup;}       \
    22     err = mp_to_unsigned_octets(mp, (it)->data, (it)->len);     \
    23     if (err < 0) goto cleanup; else err = MP_OKAY;              \
    24   } while (0)
    26 #define MP_TO_SEC_ERROR(err)                                          \
    27     switch (err) {                                                    \
    28     case MP_MEM:    PORT_SetError(SEC_ERROR_NO_MEMORY);       break;  \
    29     case MP_RANGE:  PORT_SetError(SEC_ERROR_BAD_DATA);        break;  \
    30     case MP_BADARG: PORT_SetError(SEC_ERROR_INVALID_ARGS);    break;  \
    31     default:        PORT_SetError(SEC_ERROR_LIBRARY_FAILURE); break;  \
    32     }

mercurial