Tag: 可信计算

如何使用TPM(可信平台模块)encryption字节

如何使用机器的TPM模块encryption字节? CryptProtectData Windows提供了一个(相对)简单的API来使用CryptProtectData API来encryption一个blob,我们可以使用这个API来封装一个简单易用的函数: public Byte[] ProtectBytes(Byte[] plaintext) { //… } ProtectBytes的细节并不重要,因为你可以很容易地使用它: 这里是我想要encryption的字节保存在System密钥 把我加回去encryption的blob 返回的blob是一个未公开的文档结构,其中包含解密和返回原始数据所需的所有内容(哈希algorithm,密码algorithm,盐,HMAC签名等)。 为了完整ProtectBytes ,下面是使用Crypt API保护字节的ProtectBytes示例伪代码实现: public Byte[] ProtectBytes(Byte[] plaintext) { //Setup our n-byte plaintext blob DATA_BLOB dataIn; dataIn.cbData = plaintext.Length; dataIn.pbData = Addr(plaintext[0]); DATA_BLOB dataOut; //dataOut = EncryptedFormOf(dataIn) BOOL bRes = CryptProtectData( dataIn, null, //data description (optional PWideChar) null, //optional entropy (PDATA_BLOB) […]