Ho un id_rsa (chiave privata che viene utilizzata da me per l'autenticazione e la crittografia insieme al cert su yubikey piv smardcart provider sullo slot 9a) ora desidero usare questa chiave per creare un keystore pkcs12 (chiave privata + certificato autofirmato ) per firmare i file jar (apk android) tramite un altro slot su yubikey piv
ho creato il negozio pkcs in questo modo:
$ openssl req -new -key id_rsa -out server.csr
$ openssl x509 -req -days 3650 -in server.csr -signkey id_rsa -out server.crt
$ openssl pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in server.crt -inkey id_rsa -out server.crt.p12 -name "Singnin cert"
e quando provo a caricare quei pkcs12 (o come chiave separata / cert) allo slot 9c tramite:
Importare la chiave e il certificato, effettuare una delle seguenti operazioni:
-
Importa la chiave e il certificato (formato PEM) nello slot 9a:
$ yubico-piv-tool -s 9a -a import-key -i key.pem $ yubico-piv-tool -s 9a -a import-certificate -i cert.pem
-
Importare la chiave e il certificato (formato PKCS12) nello slot 9a:
$ yubico-piv-tool -s 9a -a import-key -a import-cert -i key.p12 -K PKCS12
ottengo l'errore
Enter Password:
Invalid public exponent for import (only 0x10001 supported)
Unable to import private key
ps. io uso la chiave di gestione
ho provato a convertire id_rsa in pkcs8 o rimuovere pasphrase
qualcuno potrebbe spiegarmi di cosa si tratta? ho google su questo, ma senza fortuna
my idr_rsa
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,[some numbers I've cut]
Slot del certificato YUBIKEY PIV
Uno YubiKey abilitato per PIV contiene 4 slot distinti per i certificati, come specificato nel documento degli standard PIV. Ciascuno di questi slot è in grado di contenere un certificato X.509, insieme alla sua chiave privata di accompagnamento. Tecnicamente questi quattro slot sono molto simili, ma sono usati per scopi diversi.
Slot 9a: autenticazione PIV Questo certificato e la sua chiave privata associata vengono utilizzati per autenticare la carta e il titolare della carta. Questo slot è utilizzato per cose come l'accesso al sistema. Il PIN dell'utente finale è necessario per eseguire qualsiasi operazione di chiave privata. Una volta che il PIN è stato fornito con successo, è possibile eseguire più operazioni con chiave privata senza il consenso del titolare della carta.
Slot 9c: Firma digitale Questo certificato e la sua chiave privata associata vengono utilizzati per le firme digitali ai fini della firma di documenti o della firma di file ed eseguibili. Il PIN dell'utente finale è necessario per eseguire qualsiasi operazione di chiave privata. Il PIN deve essere inviato ogni volta immediatamente prima di un'operazione di firma, per garantire la partecipazione del titolare della carta per ogni firma digitale generata.
Slot 9d: gestione delle chiavi Questo certificato e la sua chiave privata associata sono utilizzati per la crittografia a scopo di riservatezza. Questo slot è utilizzato per cose come la crittografia di e-mail o file. Il PIN dell'utente finale è necessario per eseguire qualsiasi operazione di chiave privata. Una volta che il PIN è stato fornito con successo, è possibile eseguire più operazioni con chiave privata senza il consenso del titolare della carta.
Slot 9e: autenticazione della carta Questo certificato e la sua chiave privata associata vengono utilizzati per supportare applicazioni di accesso fisico aggiuntive, come l'accesso fisico agli edifici tramite serrature PIV-enabled. Il PIN dell'utente finale NON è richiesto per eseguire operazioni di chiave privata per questo slot.
Ho letto:
ps. ho scaricato txt tramite
$ openssl rsa -text -in id_rsa
e c'è
publicExponent: 37 (0x25)
c'è un modo per cambiare l'esponente pubblico in 0x10001? o devo generare una nuova chiave; / e tutti i certificati da zero?
ps2.
Ho estratto un testo di questo tipo sulla possibilità, ma senza ulteriori spiegazioni