示例#1
0
        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;
        }
示例#2
0
        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
        }