| 
	Статус: Новичок
 Группы: Участники
Зарегистрирован: 12.04.2018(UTC)
 Сообщений: 5
 
 | 
            
		      
                Добрый день. На android девайсе установлена ACSP, через панель управления скопировал контейнер с тестовым сертификатом. Так же создал ключевой контейнер и прописал данные сертификата через ACSP. В списке личных, отображаются оба контейнера с сертификатами, вообщем все вроде бы хорошо. Теперь пытаюсь получить данные контейнера в своем приложении. Делаю как и многие вот так: Код:
class SignController(private val clientAlias: String? = null,
                     private val clientPassword: String? = null) {
  fun requestSign(signable: ByteArray): ByteArray {
    val keyStore = KeyStore.getInstance(JCSP.HD_STORE_NAME, JCSP.PROVIDER_NAME).apply { load(null, null) }
    val privateKey = keyStore.getKey(clientAlias, clientPassword?.toCharArray()) as PrivateKey?
    val certificate = keyStore.getCertificate(clientAlias) as X509Certificate?
    if (privateKey == null || certificate == null) throw Error("Private key or/and certificate is null.")
    return Signature.getInstance(privateKey.algorithm, JCSP.PROVIDER_NAME).run {
      initSign(privateKey)
      update(signable)
      sign()
    }
  }
}
 Как бы я не изощрялся keyStore.aliases() возвращается с пустым вектором. Соответственно нет приватного ключа нет сертификата и обе переменные null. В activity есть вызов  Код:val initCode = CSPConfig.init(activity)
 и вызов Код:fun initJavaProviders() {
    // Загрузка Java CSP (хеш, подпись, шифрование,
    // генерация контейнеров).
    if (Security.getProvider(JCSP.PROVIDER_NAME) == null) {
      Security.addProvider(JCSP())
    }
    // Инициализация XML DSig (хеш, подпись).
    XmlInit.init()
  }
 В документации не смог найти причину, так же обнаружил в how_to_build.doc, информацию о intnet 'ах. Подскажите пожалуйста следующее: 1) Как можно и нужно обращаться к KeyStore за контейнером из ACSP 2) Можно ли это сделать без intent 'ов из моего приложения в ACSP? Если да, как? Отредактировано пользователем 17 апреля 2018 г. 16:00:47(UTC)
 | Причина: Не указана | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,064  Откуда: Крипто-ПроСказал(а) «Спасибо»: 21 разПоблагодарили: 740 раз в 698 постах
 
 | 
            
		      
                Здравствуйте. Автор: sibuty  1) Как можно и нужно обращаться к KeyStore за контейнером из ACSP2) Можно ли это сделать без intent 'ов из моего приложения в ACSP? Если да, как?
 1) Только с помощью интентов (доступ к файлам другого приложения ограничен). 2) Пока нет. | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Новичок
 Группы: Участники
Зарегистрирован: 12.04.2018(UTC)
 Сообщений: 5
 
 | 
            
		      
                Тогда такой вопрос, если у меня будет носитель, например RuToken, к нему я смогу обратиться заменив согласно доке
 тут, вот этот параметр JCSP.HD_STORE_NAME
 val keyStore = KeyStore.getInstance(JCSP.HD_STORE_NAME, JCSP.PROVIDER_NAME).apply { load(null, null) }?
 | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,064  Откуда: Крипто-ПроСказал(а) «Спасибо»: 21 разПоблагодарили: 740 раз в 698 постах
 
 |  | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Новичок
 Группы: Участники
Зарегистрирован: 12.04.2018(UTC)
 Сообщений: 5
 
 | 
            
		      
                Ага, спасибо, понял принял. :)
 То есть выходит хранилище HD_STORE_NAME в рамках каждого app будет свое, а в случае носителя, RuToken к примеру, мне даже не нужно будет ставить ACSP?
 Т.к. я смогу через SDK свободно получить данные?
 
 И еще такой вопрос, копирование контейнера всегда происходит в HD_STORE_NAME ACSP, в случае общения по intent 'ам?
 А если я хочу использовать SDK, мне нужно руками подключать сертификат к HD_STORE_NAME хранилищу в моем app?
 | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,064  Откуда: Крипто-ПроСказал(а) «Спасибо»: 21 разПоблагодарили: 740 раз в 698 постах
 
 | 
            
		      
                HDIMAGE - да, внутри каждого приложения. ACSP нужен, т.к. он содержит csp.При вызове интентов используются контейнеры внутри acsp (скопированные туда или созданные там).
 На счет Sdk не понял. Сертификат извлекается из контейнера.
 | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Новичок
 Группы: Участники
Зарегистрирован: 12.04.2018(UTC)
 Сообщений: 5
 
 | 
            
		      
                Добрый день. Имел ввиду следующее, если я хочу работать с носителем RuToken, и если я буду использовать JCSP то мне будет необходимо приложение ACSP, но если я буду использовать JCP, я смогу получить доступ к контейнеру и к сертификату на носителе не имея на девайсе ACSP? Отредактировано пользователем 18 апреля 2018 г. 13:41:28(UTC)
 | Причина: Не указана | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,064  Откуда: Крипто-ПроСказал(а) «Спасибо»: 21 разПоблагодарили: 740 раз в 698 постах
 
 | 
            
		      
                Добрый день.В любом случае необходим ACSP, т.к. это и есть провайдер. JCSP, условно, переадресует запросы (CSP). JCP - криптопровайдер на java, доступа к носителям не имеет.
 | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Новичок
 Группы: Участники
Зарегистрирован: 12.04.2018(UTC)
 Сообщений: 5
 
 | 
            
		      
                Ок, понял. Спасибо еще раз за пояснения. :) | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close