- generous output size check
- enlarged encryption overhead for RSA
- use type of wrap to key
Change-Id: I64367edf00d58e67df62a682a05c58dae5e2327b
alg,
keyToWrapId,
Pwd(keyToWrapPass, keyToWrapIV, keyToWrapTag),
- m_type);
+ keyToWrap.dataType);
}
RawBuffer SKey::encrypt(const CryptoAlgorithm &alg, const RawBuffer &data)
LogDebug("GetData data_size = [" << dataSize << "]");
+ uint32_t enc_overhead = KM_ENCRYPTION_OVERHEAD;
+ if (algo == ALGO_RSA)
+ enc_overhead = KM_RSA_BLOCK_SIZE;
+
// encrypted data may be longer
TZSerializer sOut;
- sOut.Push(new TZSerializableBinary(dataSize + KM_ENCRYPTION_OVERHEAD));
+ sOut.Push(new TZSerializableBinary(dataSize + enc_overhead, false));
TrustZoneMemory outMemory(m_Context, sOut.GetSize(), TEEC_MEM_OUTPUT);
sOut.Serialize(outMemory);