PKIBase.cs
上传用户:szltgg
上传日期:2019-05-16
资源大小:604k
文件大小:1k
源码类别:

Telnet服务器

开发平台:

C#

  1. /*
  2.  Copyright (c) 2005 Poderosa Project, All Rights Reserved.
  3.  This file is a part of the Granados SSH Client Library that is subject to
  4.  the license included in the distributed package.
  5.  You may not use this file except in compliance with the license.
  6.  $Id: PKIBase.cs,v 1.2 2005/04/20 08:58:56 okajima Exp $
  7. */
  8. using System;
  9. using System.IO;
  10. using System.Diagnostics;
  11. using System.Security.Cryptography;
  12. namespace Granados.PKI
  13. {
  14. public interface ISigner {
  15. byte[] Sign(byte[] data);
  16. }
  17. public interface IVerifier {
  18. void Verify(byte[] data, byte[] expected);
  19. }
  20. public interface IKeyWriter {
  21. void Write(BigInteger bi);
  22. }
  23. public enum PublicKeyAlgorithm {
  24. DSA,
  25. RSA
  26. }
  27. public abstract class PublicKey {
  28. public abstract void WriteTo(IKeyWriter writer);
  29. public abstract PublicKeyAlgorithm Algorithm { get; }
  30. }
  31. public abstract class KeyPair {
  32. public abstract PublicKey PublicKey { get; }
  33. public abstract PublicKeyAlgorithm Algorithm { get; }
  34. }
  35. public class PKIUtil {
  36. // OID { 1.3.14.3.2.26 }
  37. // iso(1) identified-org(3) OIW(14) secsig(3) alg(2) sha1(26)
  38. public static readonly byte[] SHA1_ASN_ID = new byte[] { 0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14 };
  39. }
  40. public class VerifyException : Exception {
  41. public VerifyException(string msg) : base(msg) {}
  42. }
  43. }