 
 class KeyMaterial extends Packet
 
-  constructor : ({@key, @timestamp, @userid, @passphrase}) ->
+  constructor : ({@key, @timestamp, @userid, @passphrase, @skm}) ->
     @timepacket = make_time_packet @timestamp
     @uidp = new UserID @userid
     super()

  parse_private_key : () ->
    @parse_public_key()

    @encrypted_private_key = true
    sym_enc_alg = null

    if (@s2k_convention = @slice.read_uint8()) is 0 then @encrypted_private_key = false
    else if @s2k_convention in [ C.s2k_convention_sha1 or C.s2k_convention.checksum ]
      sym_enc_alg = @slice.read_uint8()
      @s2k = (new S2K).read @slice

      iv_len = @enc_class.blockSize
      @iv = @slice.read_buffer iv_len

    if (@s2k_convention isnt C.s2k_convention.none) and (@s2k.type is C.s2k.gnu)
      @enc_mpi_data = null
    else if encrypted_private_key
      @enc_mpi_data = @slice.consume_rest_to_buffer()
    else
      [err,len] = @key.add_priv @slice.peek_rest_to_buffer()
