Exemplo n.º 1
0
        byte[] InitEncrypted(int key, NpaTitleId game_id, byte[] key_table)
        {
            var position = Position;

            if (0 != position)
            {
                Position = 0;
            }
            byte[] buffer = new byte[m_encrypted_length];
            m_encrypted_length = m_stream.Read(buffer, 0, m_encrypted_length);
            Position           = position;

            if (game_id == NpaTitleId.LAMENTO)
            {
                for (int i = 0; i < m_encrypted_length; i++)
                {
                    buffer[i] = (byte)(key_table[buffer[i]] - key);
                }
            }
            else
            {
                for (int i = 0; i < m_encrypted_length; i++)
                {
                    buffer[i] = (byte)(key_table[buffer[i]] - key - i);
                }
            }
            return(buffer);
        }
Exemplo n.º 2
0
        int GetEncryptedLength(NpaEntry entry, NpaTitleId game_id)
        {
            int length = 0x1000;

            if (game_id != NpaTitleId.LAMENTO)
            {
                length += entry.RawName.Length;
            }
            return(length);
        }
Exemplo n.º 3
0
 internal static int GetArchiveKey(NpaTitleId game_id, int key1, int key2)
 {
     if (NpaTitleId.LAMENTO == game_id)
     {
         return(key1 + key2);
     }
     else
     {
         return(key1 * key2);
     }
 }
Exemplo n.º 4
0
 public EncryptionScheme(NpaTitleId id, uint key, byte[] order)
 {
     TitleId = id;
     NameKey = key;
     Order   = order;
 }