Пример #1
0
        public static KerberosAuthorizeMessage BuildNew(byte[] data)
        {
            KerberosAuthorizeMessage kerberosAuthorizeMessage = new KerberosAuthorizeMessage();

            KerberosAuthorizeMessageBuilder.Build(kerberosAuthorizeMessage, data);
            return(kerberosAuthorizeMessage);
        }
Пример #2
0
        public static void Build(KerberosAuthorizeMessage kerberosAuthorizeMessage, byte[] data)
        {
            Asn1Parser   asn1Parser   = new Asn1Parser();
            MemoryStream memoryStream = new MemoryStream(data);

            asn1Parser.LoadData((Stream)memoryStream);
            Asn1Node rootNode = asn1Parser.RootNode;

            KerberosAuthorizeMessageBuilder.BuildRoot(kerberosAuthorizeMessage, rootNode);
        }
Пример #3
0
 private static void BuildRoot(KerberosAuthorizeMessage msg, Asn1Node root)
 {
     if (root.ChildNodeCount == 2L)
     {
         Asn1Node childNode = root.GetChildNode(0);
         if (((int)childNode.Tag & 31) != 6)
         {
             throw new Exception("OBJECT_IDENTIFIER expected. (path: " + childNode.Path + ")");
         }
         msg.MechType         = new MechType(childNode.GetDataStr(false));
         msg.NegotiationToken = (NegotiationToken) new NegTokenInit();
         KerberosAuthorizeMessageBuilder.BuildNegotiateTokenInit((NegTokenInit)msg.NegotiationToken, root.GetChildNode(1).GetChildNode(0));
     }
     else
     {
         if (root.ChildNodeCount != 1L)
         {
             return;
         }
         msg.NegotiationToken = (NegotiationToken) new NegTokenInit();
         KerberosAuthorizeMessageBuilder.BuildNegotiateTokenInit((NegTokenInit)msg.NegotiationToken, root.GetChildNode(0));
     }
 }