security/nss/lib/freebl/secmpi.h

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     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