 class Priv
   constructor : ({@p,@q,@d,@dmp1,@dmq1,@u,@pub}) ->
 
-  decrypt : (c) -> c.modPow @d, @pub.n
-  sign    : (m) -> m.modPow @d, @pub.n
+  #--------------------
+
+  decrypt : (c) -> @mod_pow c, @d
+  sign    : (m) -> @mod_pow m, @d
+
+  #--------------------
 
   serialize : () -> 
     Buffer.concat [

      @u.to_mpi_buffer()
    ]

  n : () -> @p.multiply(@q)
  phi : () -> @p.subtract(BigInteger.ONE).multiply(@q.subtract(BigInteger.ONE))
  lambda : () -> @phi.divide(@p.subtract(BigInteger.ONE).gcd(@q.subtract(BigInteger.ONE)))

  @alloc : (raw, pub) ->
    orig_len = raw.length

      @hash()[0...K.kid.len]
    ]
  ekid : () -> Buffer.concat [ new Buffer([K.kid.version, @type ] ), @hash() ]

  #----------------

  mod_pow : (x,d) -> x.modPow(d,@n)

#=======================================================================

