Пример #1
0
		public override Script GenerateScriptSig(Script scriptPubKey, IKeyRepository keyRepo, ISigner signer)
		{
			var multiSigParams = PayToMultiSigTemplate.Instance.ExtractScriptPubKeyParameters(scriptPubKey);
			TransactionSignature[] signatures = new TransactionSignature[multiSigParams.PubKeys.Length];
			var keys =
				multiSigParams
				.PubKeys
				.Select(p => keyRepo.FindKey(p.ScriptPubKey))
				.ToArray();

			int sigCount = 0;
			for(int i = 0 ; i < keys.Length ; i++)
			{
				if(sigCount == multiSigParams.SignatureCount)
					break;
				if(keys[i] != null)
				{
					var sig = signer.Sign(keys[i]);
					signatures[i] = sig;
					sigCount++;
				}
			}

			IEnumerable<TransactionSignature> sigs = signatures;
			if(sigCount == multiSigParams.SignatureCount)
			{
				sigs = sigs.Where(s => s != TransactionSignature.Empty && s != null);
			}
			return PayToMultiSigTemplate.Instance.GenerateScriptSig(sigs);
		}
Пример #2
0
 public ResourceController(IResourceRepository resourceRepository, ISystemSettingsRepository settingsRepository, IGroupRepository groupRepository, IKeyRepository keyRepository)
 {
     _resourceRepository = resourceRepository;
     _settingsRepository = settingsRepository;
     _groupRepository = groupRepository;
     _keyRepository = keyRepository;
 }
 public SettingsSubscriptionsController(ISystemSettingsRepository settingsRepository, ISecurityHelper securityHelper, IVolatileStorageController volatileStorageController, IKeyRepository keyRepository)
 {
     _settingsRepository = settingsRepository;
     _securityHelper = securityHelper;
     _volatileStorageController = volatileStorageController;
     _keyRepository = keyRepository;
 }
Пример #4
0
        public LocalKeyManager(int? currentHeadQuarterId,
            IKeyRepository keyRepository, IMiscRepository miscRepository, IReturnKeyRepository returnKeyRepository, KeyTypeConfigurationRepository keyTypeRepository, ISubsidiaryRepository subsRepository)
        {
            CurrentHeadQuarterId = currentHeadQuarterId;
            if (currentHeadQuarterId == null)
                CurrentHeadQuarter = null;
            else
            {
                HeadQuarterRepository hqRepository = new HeadQuarterRepository();
                CurrentHeadQuarter = hqRepository.GetHeadQuarter(currentHeadQuarterId.Value);
            }
            if (keyRepository == null)
                this.keyRepository = new KeyRepository();
            else
                this.keyRepository = keyRepository;

            if (miscRepository == null)
                this.miscRepository = new MiscRepository();
            else
                this.miscRepository = miscRepository;

            if (returnKeyRepository == null)
                this.returnKeyRepository = new ReturnKeyRepository();
            else
                this.returnKeyRepository = returnKeyRepository;
            if (keyTypeRepository == null)
                this.keyTypeRepository = new KeyTypeConfigurationRepository();
            else
                this.keyTypeRepository = keyTypeRepository;

            if (subsRepository == null)
                this.subsRepository = new SubsidiaryRepository();
            else
                this.subsRepository = subsRepository;
        }
 public ManageLocalKeysViewModel(string vaultName, IKeyRepository keyRepository)
 {
     this.vaultName = vaultName;
     this.keyRepository = keyRepository;
     this.AddKeyCommand = new RelayCommand(this.OnAddKey);
     this.DeleteKeyCommand = new RelayCommand(this.OnDeleteKey, this.CanDeleteKey);
 }
Пример #6
0
		public override Script GenerateScriptSig(Script scriptPubKey, IKeyRepository keyRepo, ISigner signer)
		{
			var key = keyRepo.FindKey(scriptPubKey);
			if(key == null)
				return null;
			var sig = signer.Sign(key);
			return PayToPubkeyTemplate.Instance.GenerateScriptSig(sig);
		}
Пример #7
0
		public override Script GenerateScriptSig(Script scriptPubKey, IKeyRepository keyRepo, ISigner signer)
		{
			var parameters = PayToPubkeyHashTemplate.Instance.ExtractScriptPubKeyParameters(scriptPubKey);
			var key = keyRepo.FindKey(parameters.ScriptPubKey);
			if(key == null)
				return null;
			var sig = signer.Sign(key);
			return PayToPubkeyHashTemplate.Instance.GenerateScriptSig(sig, key.PubKey);
		}
Пример #8
0
        public void SetUp()
        {
            keyRepo = new TestKeyRepository();
            service = new SignatureService(keyRepo);

            // Create a bundle
            var signatureHeader = new IssuerSignatureHeader(header);
            var ticketBundle = new TicketBundle(payload);

            issuerSignedTicketBundle = new IssuerSignedTicketBundle(ticketBundle);
            issuerSignedTicketBundle.Header = signatureHeader;
            issuerSignedTicketBundle.Signature = signature;
        }
        public KeyVaultAccountViewModel(KeyVaultConfiguration keyVaultConfiguration, IKeyRepository keyRepository)
        {
            if (keyVaultConfiguration == null)
            {
                throw new ArgumentNullException("keyVaultConfiguration");
            }

            this.keyVaultConfiguration = keyVaultConfiguration;
            this.keyRepository = keyRepository;
            this.ManageVaultKeysViewModel = new ManageVaultKeysViewModel(keyVaultConfiguration.VaultName, keyRepository, new KeyVaultKeyRepository(keyVaultConfiguration));
            this.ManageLocalKeysViewModel = new ManageLocalKeysViewModel(keyVaultConfiguration.VaultName, keyRepository);
            this.ManageLocalKeysViewModel.KeysModified += this.HandleKeysModified;
            this.ManageVaultKeysViewModel.KeysModified += this.HandleKeysModified;
            this.KeyCryptographicOperationsViewModel = new KeyCryptographicOperationsViewModel(new KeyOperations(keyVaultConfiguration));
        }
Пример #10
0
 public SettingsSubscriptionsController(ISystemSettingsRepository settingsRepository, ISecurityHelper securityHelper, IVolatileStorageController volatileStorageController, IKeyRepository keyRepository)
 {
     _settingsRepository        = settingsRepository;
     _securityHelper            = securityHelper;
     _volatileStorageController = volatileStorageController;
     _keyRepository             = keyRepository;
 }
 public abstract Script GenerateScriptSig(Script scriptPubKey, IKeyRepository keyRepo, ISigner signer);
Пример #12
0
 public override Script GenerateScriptSig(Script scriptPubKey, IKeyRepository keyRepo, ISigner signer)
 {
     return(Script.Empty);
 }
Пример #13
0
        public override Script GenerateScriptSig(Network network, Script scriptPubKey, IKeyRepository keyRepo, ISigner signer)
        {
            PayToMultiSigTemplateParameters multiSigParams = PayToMultiSigTemplate.Instance.ExtractScriptPubKeyParameters(scriptPubKey);
            var signatures = new TransactionSignature[multiSigParams.PubKeys.Length];

            Key[] keys =
                multiSigParams
                .PubKeys
                .Select(p => keyRepo.FindKey(p.ScriptPubKey))
                .ToArray();

            int sigCount = 0;

            for (int i = 0; i < keys.Length; i++)
            {
                if (sigCount == multiSigParams.SignatureCount)
                {
                    break;
                }
                if (keys[i] != null)
                {
                    TransactionSignature sig = signer.Sign(keys[i]);
                    signatures[i] = sig;
                    sigCount++;
                }
            }

            IEnumerable <TransactionSignature> sigs = signatures;

            if (sigCount == multiSigParams.SignatureCount)
            {
                sigs = sigs.Where(s => s != TransactionSignature.Empty && s != null);
            }
            return(PayToMultiSigTemplate.Instance.GenerateScriptSig(sigs));
        }
Пример #14
0
 public KeyService(IKeyRepository keyRepository, IUuidService uuid, IMetrics metrics)
 {
     _keyRepository = keyRepository;
     _uuid          = uuid;
     _metrics       = metrics;
 }
Пример #15
0
        public override Script GenerateScriptSig(Network network, Script scriptPubKey, IKeyRepository keyRepo, ISigner signer)
        {
            Key key = keyRepo.FindKey(scriptPubKey);

            if (key == null)
            {
                return(null);
            }
            TransactionSignature sig = signer.Sign(key);

            return(PayToPubkeyTemplate.Instance.GenerateScriptSig(sig));
        }
Пример #16
0
		public abstract Script GenerateScriptSig(Script scriptPubKey, IKeyRepository keyRepo, ISigner signer);
Пример #17
0
		public override Script GenerateScriptSig(Script scriptPubKey, IKeyRepository keyRepo, ISigner signer)
		{
			return Script.Empty;
		}
Пример #18
0
        public override Script GenerateScriptSig(Network network, Script scriptPubKey, IKeyRepository keyRepo, ISigner signer)
        {
            KeyId parameters = PayToPubkeyHashTemplate.Instance.ExtractScriptPubKeyParameters(scriptPubKey);
            Key   key        = keyRepo.FindKey(parameters.ScriptPubKey);

            if (key == null)
            {
                return(null);
            }
            TransactionSignature sig = signer.Sign(key);

            return(PayToPubkeyHashTemplate.Instance.GenerateScriptSig(sig, key.PubKey));
        }
Пример #19
0
 public KeyGenerationService(IKeyRepository keyRepository)
 {
     KeyRepository = keyRepository;
 }
Пример #20
0
 public MtbHandler(IKeyRepository keyRepository)
 {
     _keyRepository = keyRepository;
     _service = new SignatureService(_keyRepository);
 }
Пример #21
0
 public abstract void Sign(InputSigningContext inputSigningContext, IKeyRepository keyRepository, ISigner signer);
 public UnitOfWork(IKeyRepository repository)
 {
     Keys = repository;
 }
Пример #23
0
 public ManageVaultKeysViewModel(string vaultName, IKeyRepository keyRepository, IKeyRepository keyVaultRepository)
 {
     this.vaultName          = vaultName;
     this.keyRepository      = keyRepository;
     this.keyVaultRepository = keyVaultRepository;
     this.GetAllCommand      = new RelayCommand(this.OnGetAllCommand);
     this.DeleteKeyCommand   = new RelayCommand(this.OnDeleteCommand, this.CanExecuteDeleteCommand);
     this.CreateKeyCommand   = new RelayCommand(this.OnCreateCommand);
 }
Пример #24
0
 public GamePolicy(ICityQuestSession session, IPermissionChecker permissionChecker, IUserRepository userRepository, IKeyRepository keyRepository)
     : base(session, permissionChecker)
 {
     UserRepository = userRepository;
     KeyRepository  = keyRepository;
 }
Пример #25
0
 public SignatureService(IKeyRepository keyRepository)
 {
     _keyRepository = keyRepository;
 }
        /// <inheritdoc />
        public override Script GenerateScriptSig(Network network, Script scriptPubKey, IKeyRepository keyRepo, ISigner signer)
        {
            ColdStakingScriptTemplate.Instance.ExtractScriptPubKeyParameters(scriptPubKey, out KeyId hotKey, out KeyId coldKey);

            // The scriptPubKey will be different depending on whether we are spending or cold staking.
            Key key = keyRepo.FindKey((this.usesColdPubKey ? coldKey : hotKey).ScriptPubKey);

            if (key == null)
            {
                return(null);
            }

            TransactionSignature sig = signer.Sign(key);

            return(ColdStakingScriptTemplate.Instance.GenerateScriptSig(sig, this.usesColdPubKey, key.PubKey));
        }