Beispiel #1
0
        public void IsSubsetOfBadPermission()
        {
            PublisherIdentityPermission p1   = new PublisherIdentityPermission(x509);
            FileDialogPermission        fdp2 = new FileDialogPermission(PermissionState.Unrestricted);

            Assert.IsTrue(p1.IsSubsetOf(fdp2), "IsSubsetOf(PublisherIdentityPermission)");
        }
Beispiel #2
0
    // Demonstrate all methods.
    public static void Main(String[] args)
    {
        // Initialize the PublisherIdentityPermissions for use in the sample
        //<Snippet8>
        FileStream fs1 = new FileStream("..\\..\\..\\MyCert1.cer", FileMode.Open);

        Byte[] certSBytes1 = new Byte[(int)fs1.Length];
        fs1.Read(certSBytes1, 0, (int)fs1.Length);
        publisherCertificate[0] = new X509Certificate(certSBytes1);
        fs1.Close();
        FileStream fs2 = new FileStream("..\\..\\..\\MyCert2.cer", FileMode.Open);

        Byte[] certSBytes2 = new Byte[(int)fs2.Length];
        fs2.Read(certSBytes2, 0, (int)fs2.Length);
        publisherCertificate[1] = new X509Certificate(certSBytes2);
        fs2.Close();

        publisherPerm1 = new PublisherIdentityPermission(publisherCertificate[0]);
        publisherPerm2 = new PublisherIdentityPermission(publisherCertificate[1]);
        //</Snippet8>

        IsSubsetOfDemo();
        CopyDemo();
        UnionDemo();
        IntersectDemo();
        ToFromXmlDemo();
    }
Beispiel #3
0
 //</Snippet5>
 // ToXml creates an XML encoding of the permission and its current state;
 // FromXml reconstructs a permission with the specified state from the XML encoding.
 //<Snippet6>
 private static void ToFromXmlDemo()
 {
     publisherPerm2 = new PublisherIdentityPermission(PermissionState.None);
     publisherPerm2.FromXml(publisherPerm1.ToXml());
     Console.WriteLine("Result of ToFromXml = " +
                       publisherPerm2.ToString());
 }
Beispiel #4
0
        public void Intersect()
        {
            // intersect None with None
            PublisherIdentityPermission p1 = new PublisherIdentityPermission(PermissionState.None);
            PublisherIdentityPermission p2 = new PublisherIdentityPermission(PermissionState.None);
            PublisherIdentityPermission p3 = (PublisherIdentityPermission)p1.Intersect(p2);

            Assert.IsNull(p3, "None N None == null");
            // with 1 certificate
            p1 = new PublisherIdentityPermission(x509);
            p2 = new PublisherIdentityPermission(PermissionState.None);
            p3 = (PublisherIdentityPermission)p1.Intersect(p2);
            Assert.IsNull(p3, "cert N None == None");
            // 2 different certificates
            X509Certificate x2 = new X509Certificate(cert2);

            p2 = new PublisherIdentityPermission(x2);
            p3 = (PublisherIdentityPermission)p1.Intersect(p2);
            Assert.IsNull(p3, "cert1 N cert2 == null");
            // 2 certificates (same)
            x2 = new X509Certificate(cert);
            p2 = new PublisherIdentityPermission(x2);
            p3 = (PublisherIdentityPermission)p1.Intersect(p2);
            Assert.AreEqual(p3.ToString(), p1.ToString(), "cert1 N cert1 == cert1");
        }
Beispiel #5
0
        public void UnionWithNull()
        {
            PublisherIdentityPermission p1 = new PublisherIdentityPermission(x509);
            PublisherIdentityPermission p2 = null;
            PublisherIdentityPermission p3 = (PublisherIdentityPermission)p1.Union(p2);

            Assert.AreEqual(p1.ToXml().ToString(), p3.ToXml().ToString(), "P1 U null == P1");
        }
Beispiel #6
0
        public void IntersectWithNull()
        {
            PublisherIdentityPermission p1 = new PublisherIdentityPermission(x509);
            PublisherIdentityPermission p2 = null;
            PublisherIdentityPermission p3 = (PublisherIdentityPermission)p1.Intersect(p2);

            Assert.IsNull(p3, "P1 N null == null");
        }
Beispiel #7
0
 //</Snippet4>
 //Copy creates and returns an identical copy of the current permission.
 //<Snippet5>
 private static void CopyDemo()
 {
     //<Snippet7>
     // Create an empty PublisherIdentityPermission to serve as the target of the copy.
     publisherPerm2 = new PublisherIdentityPermission(PermissionState.None);
     publisherPerm2 = (PublisherIdentityPermission)publisherPerm1.Copy();
     Console.WriteLine("Result of copy = " + publisherPerm2.ToString());
     //</Snippet7>
 }
Beispiel #8
0
        public void Certificate()
        {
            PublisherIdentityPermission p1 = new PublisherIdentityPermission(x509);

            PublisherIdentityPermission p2 = new PublisherIdentityPermission(PermissionState.None);

            p2.Certificate = x509;

            Assert.AreEqual(p1.ToXml().ToString(), p2.ToXml().ToString(), "Certificate");
        }
Beispiel #9
0
        public void None()
        {
            PublisherIdentityPermissionAttribute attr = new PublisherIdentityPermissionAttribute(SecurityAction.Assert);

            Assert.IsNull(attr.CertFile, "None.CertFile");
            Assert.IsNull(attr.SignedFile, "None.SignedFile");
            Assert.IsNull(attr.X509Certificate, "None.X509Certificate");
            PublisherIdentityPermission p = (PublisherIdentityPermission)attr.CreatePermission();

            Assert.IsNull(p.Certificate, "None.CreatePermission");
        }
Beispiel #10
0
        public void FromXmlWrongVersion()
        {
            PublisherIdentityPermission p  = new PublisherIdentityPermission(PermissionState.None);
            SecurityElement             se = p.ToXml();
            // can't modify - so we create our own
            SecurityElement se2 = new SecurityElement(se.Tag, se.Text);

            se2.AddAttribute("class", se.Attribute("class"));
            se2.AddAttribute("version", "2");
            p.FromXml(se2);
        }
Beispiel #11
0
        public void FromXml()
        {
            PublisherIdentityPermission p  = new PublisherIdentityPermission(PermissionState.None);
            SecurityElement             se = p.ToXml();

            Assert.IsNotNull(se, "ToXml()");
            p.FromXml(se);

            se.AddAttribute("X509v3Certificate", x509.GetRawCertDataString());
            p.FromXml(se);
            Assert.AreEqual(x509.GetCertHashString(), p.Certificate.GetCertHashString(), "CertificateHash");
        }
Beispiel #12
0
        public void PermissionStateNone()
        {
            PublisherIdentityPermission p = new PublisherIdentityPermission(PermissionState.None);

            Assert.IsNotNull(p, "PublisherIdentityPermission(PermissionState.None)");
            PublisherIdentityPermission copy = (PublisherIdentityPermission)p.Copy();
            SecurityElement             se   = p.ToXml();

            Assert.IsTrue(se.Attribute("class").StartsWith(className), "ToXml-class");
            Assert.AreEqual("1", se.Attribute("version"), "ToXml-version");
            Assert.IsNull(se.Attribute("Unrestricted"), "ToXml-Unrestricted");
            Assert.IsNull(p.Certificate, "Certificate==null");
        }
Beispiel #13
0
        public void Default()
        {
            PublisherIdentityPermissionAttribute a = new PublisherIdentityPermissionAttribute(SecurityAction.Assert);

            Assert.IsNull(a.CertFile, "CertFile");
            Assert.IsNull(a.SignedFile, "SignedFile");
            Assert.IsNull(a.X509Certificate, "X509Certificate");
            Assert.AreEqual(a.ToString(), a.TypeId.ToString(), "TypeId");
            Assert.IsFalse(a.Unrestricted, "Unrestricted");

            PublisherIdentityPermission perm = (PublisherIdentityPermission)a.CreatePermission();

            Assert.IsNull(perm.Certificate, "CreatePermission.Certificate");
        }
Beispiel #14
0
        public static void PublisherIdentityPermissionCallMethods()
        {
            PublisherIdentityPermission pip  = new PublisherIdentityPermission(new System.Security.Cryptography.X509Certificates.X509Certificate());
            PublisherIdentityPermission pip2 = new PublisherIdentityPermission(new Permissions.PermissionState());
            IPermission ip       = pip.Copy();
            IPermission ip2      = pip.Intersect(ip);
            bool        testbool = pip.IsSubsetOf(ip);

            ip2 = pip.Union(ip);
            SecurityElement se = new SecurityElement("");

            pip.FromXml(se);
            se = pip.ToXml();
        }
        public void Union_DifferentCertificates()
        {
            PublisherIdentityPermission p1 = new PublisherIdentityPermission(x509);
            X509Certificate             x2 = new X509Certificate(cert2);
            PublisherIdentityPermission p2 = new PublisherIdentityPermission(x2);
            IPermission p = p1.Union(p2);
            // new XML format is used to contain more than one X.509 certificate
            SecurityElement se = p.ToXml();

            Assert.AreEqual(2, se.Children.Count, "Childs");
            Assert.AreEqual((se.Children [0] as SecurityElement).Attribute("X509v3Certificate"), p1.ToXml().Attribute("X509v3Certificate"), "Cert#1");
            Assert.AreEqual((se.Children [1] as SecurityElement).Attribute("X509v3Certificate"), p2.ToXml().Attribute("X509v3Certificate"), "Cert#2");
            // strangely it is still versioned as 'version="1"'.
            Assert.AreEqual("1", se.Attribute("version"), "Version");
        }
Beispiel #16
0
        public void X509CertificateProperty()
        {
            X509Certificate x509 = new X509Certificate(cert2);
            PublisherIdentityPermissionAttribute attr = new PublisherIdentityPermissionAttribute(SecurityAction.Assert);

            attr.CertFile        = null;
            attr.SignedFile      = null;
            attr.X509Certificate = x509.GetRawCertDataString();
            Assert.IsNull(attr.CertFile, "CertFile");
            Assert.IsNull(attr.SignedFile, "SignedFile");
            Assert.AreEqual(x509.GetRawCertDataString(), attr.X509Certificate, "X509Certificate");
            PublisherIdentityPermission p = (PublisherIdentityPermission)attr.CreatePermission();

            Assert.AreEqual(x509.GetRawCertDataString(), p.Certificate.GetRawCertDataString(), "X509CertificateProperty.Certificate");
        }
Beispiel #17
0
        public void PermissionStateUnrestricted()
        {
            // In 2.0 Unrestricted are permitted for identity permissions
            PublisherIdentityPermission p = new PublisherIdentityPermission(PermissionState.Unrestricted);

            Assert.IsNotNull(p, "PublisherIdentityPermission(PermissionState.None)");
            PublisherIdentityPermission copy = (PublisherIdentityPermission)p.Copy();
            SecurityElement             se   = p.ToXml();

            Assert.IsTrue(se.Attribute("class").StartsWith(className), "ToXml-class");
            Assert.AreEqual("1", se.Attribute("version"), "ToXml-version");
            Assert.AreEqual("true", se.Attribute("Unrestricted"), "ToXml-Unrestricted");
            Assert.IsNull(p.Certificate, "Certificate==null");
            // and they aren't equals to None
            Assert.IsTrue(!p.Equals(new PublisherIdentityPermission(PermissionState.None)));
        }
Beispiel #18
0
    //</Snippet3>
    // Intersect creates and returns a new permission that is the intersection of the current
    // permission and the permission specified.
    //<Snippet4>
    private static void IntersectDemo()
    {
        PublisherIdentityPermission publisherPerm3 = (PublisherIdentityPermission)publisherPerm1.Union(publisherPerm2);

        if (publisherPerm3 != null)
        {
            Console.WriteLine("The intersection of " + publisherPerm1.Certificate.Subject +
                              " and " + publisherPerm2.Certificate.Subject + " = " +
                              ((PublisherIdentityPermission)publisherPerm3).Certificate.Subject.ToString());
        }
        else
        {
            Console.WriteLine("The intersection of " + publisherPerm1.Certificate.Subject + " and " +
                              publisherPerm2.Certificate.Subject + " is null.");
        }
    }
Beispiel #19
0
        public void IsSubsetOf()
        {
            PublisherIdentityPermission p1 = new PublisherIdentityPermission(PermissionState.None);
            PublisherIdentityPermission p2 = new PublisherIdentityPermission(PermissionState.None);

            Assert.IsTrue(p1.IsSubsetOf(p2), "None.IsSubsetOf(None)");
            PublisherIdentityPermission p3 = new PublisherIdentityPermission(x509);

            Assert.IsTrue(!p3.IsSubsetOf(p2), "Cert.IsSubsetOf(None)");
            Assert.IsTrue(p2.IsSubsetOf(p3), "None.IsSubsetOf(Cert)");
            PublisherIdentityPermission p4 = new PublisherIdentityPermission(x509);

            Assert.IsTrue(p3.IsSubsetOf(p4), "Cert.IsSubsetOf(Cert)");
            X509Certificate             x2 = new X509Certificate(cert2);
            PublisherIdentityPermission p5 = new PublisherIdentityPermission(x2);

            Assert.IsTrue(!p5.IsSubsetOf(p3), "Cert2.IsSubsetOf(Cert)");
            Assert.IsTrue(!p3.IsSubsetOf(p5), "Cert.IsSubsetOf(Cert2)");
        }
Beispiel #20
0
        public void Union()
        {
            // with no certificates
            PublisherIdentityPermission p1 = new PublisherIdentityPermission(PermissionState.None);
            PublisherIdentityPermission p2 = new PublisherIdentityPermission(PermissionState.None);
            PublisherIdentityPermission p3 = (PublisherIdentityPermission)p1.Union(p2);

            Assert.IsNull(p3, "None U None == null");
            // with 1 certificate
            p1 = new PublisherIdentityPermission(x509);
            p2 = new PublisherIdentityPermission(PermissionState.None);
            p3 = (PublisherIdentityPermission)p1.Union(p2);
            Assert.AreEqual(p3.ToXml().ToString(), p1.ToXml().ToString(), "cert U None == cert");
            X509Certificate x2 = new X509Certificate(cert2);

            // 2 certificates (same)
            x2 = new X509Certificate(cert);
            p2 = new PublisherIdentityPermission(x2);
            p3 = (PublisherIdentityPermission)p1.Union(p2);
            Assert.AreEqual(p3.ToString(), p1.ToString(), "cert1 U cert1 == cert1");
        }
Beispiel #21
0
        public void Priority()
        {
            X509Certificate x509 = new X509Certificate(cert1);
            PublisherIdentityPermissionAttribute attr = new PublisherIdentityPermissionAttribute(SecurityAction.Assert);

            attr.CertFile        = "cert1.cer";
            attr.SignedFile      = "cert2.cer";
            attr.X509Certificate = x509.GetRawCertDataString();
            Assert.AreEqual("cert1.cer", attr.CertFile, "CertFile");
            Assert.AreEqual("cert2.cer", attr.SignedFile, "SignedFile");
            Assert.AreEqual(x509.GetRawCertDataString(), attr.X509Certificate, "X509Certificate");
            // from documentation X509Certificate has priority over CertFile and SignedFile
            PublisherIdentityPermission p = (PublisherIdentityPermission)attr.CreatePermission();

            Assert.AreEqual(x509.GetRawCertDataString(), p.Certificate.GetRawCertDataString(), "p.Certificate");
            // but no word about CertFile and SignedFile priority
            attr.CertFile        = "cert1.cer";
            attr.SignedFile      = "cert2.cer";
            attr.X509Certificate = null;
            p = (PublisherIdentityPermission)attr.CreatePermission();
            Assert.AreEqual(x509.GetRawCertDataString(), p.Certificate.GetRawCertDataString(), "p.Certificate");
            // CertFile !
        }
Beispiel #22
0
 public void UnionWithBadPermission()
 {
     PublisherIdentityPermission p1  = new PublisherIdentityPermission(PermissionState.None);
     EnvironmentPermission       ep2 = new EnvironmentPermission(PermissionState.None);
     PublisherIdentityPermission p3  = (PublisherIdentityPermission)p1.Union(ep2);
 }
Beispiel #23
0
 public void PermissionStateUnrestricted()
 {
     // Unrestricted isn't permitted for identity permissions
     PublisherIdentityPermission p = new PublisherIdentityPermission(PermissionState.Unrestricted);
 }
Beispiel #24
0
 public void ConstructorCertificateNull()
 {
     PublisherIdentityPermission p = new PublisherIdentityPermission(null);
 }
Beispiel #25
0
 public static void PublisherIdentityPermissionCallMethods()
 {
     PublisherIdentityPermission pip = new PublisherIdentityPermission(new System.Security.Cryptography.X509Certificates.X509Certificate());
     PublisherIdentityPermission pip2 = new PublisherIdentityPermission(new Permissions.PermissionState());
     IPermission ip = pip.Copy();
     IPermission ip2 = pip.Intersect(ip);
     bool testbool = pip.IsSubsetOf(ip);
     ip2 = pip.Union(ip);
     SecurityElement se = new SecurityElement("");
     pip.FromXml(se);
     se = pip.ToXml();
 }
Beispiel #26
0
        public void PropertyCertificateNull()
        {
            PublisherIdentityPermission p = new PublisherIdentityPermission(PermissionState.None);

            p.Certificate = null;
        }
Beispiel #27
0
 public void IntersectWithBadPermission()
 {
     PublisherIdentityPermission p1   = new PublisherIdentityPermission(x509);
     FileDialogPermission        fdp2 = new FileDialogPermission(PermissionState.Unrestricted);
     PublisherIdentityPermission p3   = (PublisherIdentityPermission)p1.Intersect(fdp2);
 }
Beispiel #28
0
        public void IsSubsetOfNull()
        {
            PublisherIdentityPermission p1 = new PublisherIdentityPermission(x509);

            Assert.IsTrue(!p1.IsSubsetOf(null), "IsSubsetOf(null)");
        }