private string BinPoolFind(ProtectedBinary pb) { if(pb == null) { Debug.Assert(false); return null; } foreach(KeyValuePair<string, ProtectedBinary> kvp in m_dictBinPool) { if(pb.EqualsValue(kvp.Value)) return kvp.Key; } return null; }
private static void TestProtectedMemory() { #if DEBUG byte[] pbData = Encoding.ASCII.GetBytes("Test Test Test Test"); ProtectedBinary pb = new ProtectedBinary(true, pbData); if(!pb.IsProtected) throw new SecurityException("ProtectedBinary-1"); byte[] pbDec = pb.ReadData(); if(!MemUtil.ArraysEqual(pbData, pbDec)) throw new SecurityException("ProtectedBinary-2"); if(!pb.IsProtected) throw new SecurityException("ProtectedBinary-3"); byte[] pbData2 = Encoding.ASCII.GetBytes("Test Test Test Test"); byte[] pbData3 = Encoding.ASCII.GetBytes("Test Test Test Test Test"); ProtectedBinary pb2 = new ProtectedBinary(true, pbData2); ProtectedBinary pb3 = new ProtectedBinary(true, pbData3); if(!pb.EqualsValue(pb2)) throw new SecurityException("ProtectedBinary-4"); if(pb.EqualsValue(pb3)) throw new SecurityException("ProtectedBinary-5"); if(pb2.EqualsValue(pb3)) throw new SecurityException("ProtectedBinary-6"); #endif }