예제 #1
0
        public static void DecodeAuthHost(LexReader LexReader) {
            List<AuthorizedKey> Result = new List<AuthorizedKey>();


            try {
                var Lexer = new AuthKeysFileLex(LexReader);

                var Token = Lexer.GetToken();
                while (Token == AuthKeysFileLex.Token.Data) {
                    var TaggedData = Lexer.GetTaggedData();
                    Result.Add(TaggedData);
                    Token = Lexer.GetToken();
                    }
                }
            catch (System.Exception Inner) {
                throw new ParseError(LexReader, Inner);
                }

            }
예제 #2
0
        public static KeyPair DecodePEM (LexReader LexReader) {
            var Lexer = new KeyFileLex(LexReader);
            var Token = Lexer.GetToken();

            if (Token == KeyFileLex.Token.Data) {
                var TaggedData = Lexer.GetTaggedData();
                if (!TaggedData.Strict) {
                    Console.WriteLine("Some yukky data here");

                    }

                if (TaggedData.Tag == " RSA PRIVATE KEY") {
                    return DecodeRSAKeyPair(TaggedData.Data);
                    }



                }


            return null;
            }
예제 #3
0
 /// <summary>
  /// Create and initialize a lexical analyzer.
  /// </summary>
  /// <param name="Reader">The input source.</param>
  public  KeyFileLex(LexReader Reader) : base (Reader) {
      }
예제 #4
0
		/// <summary>
        /// Create an instance of the exception.
        /// </summary>		
        /// <param name="Object">User data</param>	
		/// <param name="Inner">Inner Exception</param>	
		public ParseError (LexReader Object, System.Exception Inner) : 
				base (String.Format ("The file {0} could not be read",
					Object.FilePath					), Inner) {
			UserData = Object;
			}
예제 #5
0
		/// <summary>
        /// Create an instance of the exception.
        /// </summary>		
        /// <param name="Object">User data</param>	
		/// <param name="Inner">Inner Exception</param>	
		public ParseError (LexReader Object) : 
				base (String.Format ("The file {0} could not be read",
					Object.FilePath					)) {
			UserData = Object;
			}
예제 #6
0
 /// <summary>
  /// Create and initialize a lexical analyzer.
  /// </summary>
  /// <param name="Reader">The input source.</param>
  public  AuthKeysFileLex(LexReader Reader) : base (Reader) {
      }
예제 #7
0
 public static KeyPair DecodePEMText(string Text) {
     var Reader = new System.IO.StringReader(Text);
     LexReader LexReader = new LexReader(Reader);
     return DecodePEM(LexReader);
     }
예제 #8
0
 public static KeyPair DecodePEM(string FileName) {
     using (var TextReader = FileName.OpenFileReadShared()) {
         LexReader LexReader = new LexReader(TextReader);
         return DecodePEM(LexReader);
         }
     }
예제 #9
0
 /// <summary>
 /// Decode SSH Authorized Key file format
 /// </summary>
 /// <param name="FileName">File to decode.</param>
 public static void DecodeAuthHost(string FileName) {
     using (var TextReader = FileName.OpenFileReadShared()) {
         LexReader LexReader = new LexReader(TextReader);
         DecodeAuthHost(LexReader);
         }
     }