diff options
Diffstat (limited to 'mpi/mpiutil.c')
-rw-r--r-- | mpi/mpiutil.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/mpi/mpiutil.c b/mpi/mpiutil.c index 068a9a399..7515eafd1 100644 --- a/mpi/mpiutil.c +++ b/mpi/mpiutil.c @@ -1,4 +1,4 @@ -/* mpiutil.c - Utility functions for MPI +/* mpiutilac - Utility functions for MPI * Copyright (c) 1997 by Werner Koch (dd9jn) * * This file is part of G10. @@ -192,6 +192,34 @@ mpi_free( MPI a ) } +void +mpi_set_secure( MPI a ) +{ + mpi_ptr_t ap, bp; + + if( a->secure ) + return; + a->secure = 1; + ap = a->d; + if( !a->nlimbs ) { + assert(!ap); + return; + } + #ifdef M_DEBUG + bp = mpi_debug_alloc_limb_space( a->nlimbs, 1, "set_secure" ); + #else + bp = mpi_alloc_limb_space( a->nlimbs, 1 ); + #endif + MPN_COPY( bp, ap, a->nlimbs ); + a->d = bp; + #ifdef M_DEBUG + mpi_debug_free_limb_space(ap, "set_secure"); + #else + mpi_free_limb_space(ap); + #endif +} + + /**************** * Note: This copy function shpould not interpret the MPI * but copy it transparently. |