CSPspEmu.Core.Crypto.Kirk.kirk_CMD4 C# (CSharp) Method

kirk_CMD4() public method

public kirk_CMD4 ( byte outbuff, byte inbuff, int size ) : void
outbuff byte
inbuff byte
size int
return void
        public void kirk_CMD4(byte* outbuff, byte* inbuff, int size)
        {
            check_initialized();

            KIRK_AES128CBC_HEADER *header = (KIRK_AES128CBC_HEADER*)inbuff;
            if (header->Mode != KirkMode.EncryptCbc)
            {
                throw (new KirkException(ResultEnum.PSP_KIRK_INVALID_MODE));
            }
            if (header->Datasize == 0)
            {
                throw (new KirkException(ResultEnum.PSP_KIRK_DATA_SIZE_IS_ZERO));
            }

            kirk_4_7_get_key(header->KeySeed, (key) =>
            {
                // Set the key
                Crypto.AES_ctx aesKey;
                Crypto.AES_set_key(&aesKey, key, 128);
                Crypto.AES_cbc_encrypt(&aesKey, inbuff + sizeof(KIRK_AES128CBC_HEADER), outbuff, size);
            });
        }