コード例 #1
0
        public CyberPlatSignatureManager(CyberPlatSignatureManagerConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }
            m_Configuration = configuration;

            IPriv.Initialize();

            checkKeys(); // Fail-fast
        }
コード例 #2
0
ファイル: CyberPlatClient.cs プロジェクト: tadeuspiat/legacy
 public CyberPlatClient()
 {
     try
     {
         IPriv.Initialize();
     }
     catch (Exception ex)
     {
         Functions.AddEvent("Error initializing CyberPlatClient!", string.Format("CyberPlatClient!: [{0}]", ex.Message), EventType.Critical, null, ex);
         throw;
     }
 }
コード例 #3
0
        private string signText(string inputText)
        {
            IPrivKey secretKey = null;

            try
            {
                secretKey = IPriv.openSecretKey(m_Configuration.SecretKeyPath, m_Configuration.SecretKeyPassword);
                return(secretKey.signText(inputText));
            }
            catch (IPrivException err)
            {
                throw new CryptographicException(err + " (код ошибки = " + err.code + ")", err);
            }
            finally
            {
                secretKey?.closeKey();
            }
        }
コード例 #4
0
        private void verifyText(string inputText)
        {
            IPrivKey publicKey = null;

            try
            {
                publicKey = IPriv.openPublicKey(m_Configuration.PublicKeyPath, Convert.ToUInt32(m_Configuration.PublicKeySerial, 10));
                publicKey.verifyText(inputText); // If this step is successfull, then signature is valid
            }
            catch (IPrivException err)
            {
                throw new CryptographicException(err + " (код ошибки = " + err.code + ")", err);
            }
            finally
            {
                publicKey?.closeKey();
            }
        }
コード例 #5
0
        /// <summary>Fail-fast checking of keys opening.</summary>
        private void checkKeys()
        {
            checkKeyPath(m_Configuration.SecretKeyPath);
            checkKeyPath(m_Configuration.PublicKeyPath);

            IPrivKey secretKey = null;
            IPrivKey publicKey = null;

            try
            {
                secretKey = IPriv.openSecretKey(m_Configuration.SecretKeyPath, m_Configuration.SecretKeyPassword);
                publicKey = IPriv.openPublicKey(m_Configuration.PublicKeyPath, Convert.ToUInt32(m_Configuration.PublicKeySerial, 10));
            }
            finally
            {
                secretKey?.closeKey();
                publicKey?.closeKey();
            }
        }
コード例 #6
0
ファイル: CyberPlatClient.cs プロジェクト: tadeuspiat/legacy
        private string Sign(string message)
        {
            string   res = null;
            IPrivKey sec = null;

            try
            {
                sec = IPriv.openSecretKey(SecretKey, Password);
                res = sec.signText(message);
            }
            catch (IPrivException ex)
            {
                Functions.AddEvent("Error signing the message!", string.Format("Sign!: [{0}]", ex.Message), EventType.Critical, null, ex);
            }
            if (sec != null)
            {
                sec.closeKey();
            }
            return(res);
        }
コード例 #7
0
ファイル: CyberPlatClient.cs プロジェクト: tadeuspiat/legacy
        private bool VerifySign(string message)
        {
            var      res = false;
            IPrivKey pub = null;

            try
            {
                pub = IPriv.openPublicKey(PublicKey, Convert.ToUInt32(SerialNumber, 10));
                pub.verifyText(message);
                Functions.AddEvent("Signature valid!",
                                   string.Format("VerifySign: [{0}]", message), EventType.Info);
                res = true;
            }
            catch (IPrivException ex)
            {
                Functions.AddEvent("Error during signature verification!", string.Format("VerifySign!: [{0}]", ex.Message), EventType.Critical, null, ex);
            }
            if (pub != null)
            {
                pub.closeKey();
            }
            return(res);
        }
コード例 #8
0
        public static bool HasPriv(string privType, ClientPrivilege privs)
        {
            IPriv p = FindByPrivType(privType);

            return(HasPriv(p.PrivFlag, privs));
        }
コード例 #9
0
 private void releaseUnmanagedResources()
 {
     IPriv.Done();
 }
コード例 #10
0
ファイル: CyberPlatClient.cs プロジェクト: tadeuspiat/legacy
 public void Done()
 {
     IPriv.Done();
 }
コード例 #11
0
 public int SaveResource(IPriv res)
 {
     return(this.Channel.SaveResource(res));
 }
コード例 #12
0
 public int SavePermission(string resType, IRole role, IPriv resource, string pmsExp)
 {
     return(this.Channel.SavePermission(resType, role, resource, pmsExp));
 }
コード例 #13
0
 public int RemoveResource(IPriv priv)
 {
     return(this.Channel.RemoveResource(priv));
 }
コード例 #14
0
 public int Revoke(string ResourceType, IRole role, IPriv resource, IList <IOperation> operations)
 {
     return(this.Channel.Revoke(ResourceType, role, resource, operations));
 }
コード例 #15
0
 public int Grant(string ResourceType, IRole role, IPriv resource, IList <IOperation> operations, object param)
 {
     return(this.Channel.Grant(ResourceType, role, resource, operations, param));
 }