예제 #1
0
gcry_mpi_t
gcry_mpi_set_ui( gcry_mpi_t w, unsigned long u )
{
    if( !w )
	w = _gcry_mpi_alloc(1);
    _gcry_mpi_set_ui( w, u );
    return w;
}
예제 #2
0
gcry_mpi_t
gcry_mpi_set( gcry_mpi_t w, const gcry_mpi_t u )
{
    if( !w )
	w = _gcry_mpi_alloc( mpi_get_nlimbs(u) );
    _gcry_mpi_set( w, (gcry_mpi_t)u );
    return w;
}
예제 #3
0
gcry_mpi_t
gcry_mpi_set_ui( gcry_mpi_t w, unsigned long u)
{
  if (!w)
    w = _gcry_mpi_alloc (1);
  /* FIXME: If U is 0 we have no need to resize and thus possible
     allocating the the limbs. */
  RESIZE_IF_NEEDED(w, 1);
  w->d[0] = u;
  w->nlimbs = u? 1:0;
  w->sign = 0;
  w->flags = 0;
  return w;
}
예제 #4
0
gcry_mpi_t
gcry_mpi_set( gcry_mpi_t w, gcry_mpi_t u)
{
  mpi_ptr_t wp, up;
  mpi_size_t usize = u->nlimbs;
  int usign = u->sign;

  if (!w)
    w = _gcry_mpi_alloc( mpi_get_nlimbs(u) );
  RESIZE_IF_NEEDED(w, usize);
  wp = w->d;
  up = u->d;
  MPN_COPY( wp, up, usize );
  w->nlimbs = usize;
  w->flags = u->flags;
  w->sign = usign;
  return w;
}
예제 #5
0
gcry_mpi_t
_gcry_mpi_set (gcry_mpi_t w, gcry_mpi_t u)
{
  mpi_ptr_t wp, up;
  mpi_size_t usize = u->nlimbs;
  int usign = u->sign;

  if (!w)
    w = _gcry_mpi_alloc( mpi_get_nlimbs(u) );
  if (mpi_is_immutable (w))
    {
      mpi_immutable_failed ();
      return w;
    }
  RESIZE_IF_NEEDED(w, usize);
  wp = w->d;
  up = u->d;
  MPN_COPY( wp, up, usize );
  w->nlimbs = usize;
  w->flags = u->flags;
  w->flags &= ~(16|32); /* Reset the immutable and constant flags.  */
  w->sign = usign;
  return w;
}
예제 #6
0
gcry_mpi_t
_gcry_mpi_new (unsigned int nbits)
{
    return _gcry_mpi_alloc ( (nbits+BITS_PER_MPI_LIMB-1)
                             / BITS_PER_MPI_LIMB );
}