Je suis en train d'importer un certificat pkcs#12
dans OS X Keychain en utilisant la commande suivante:sécurité exécutant la commande d'importation de Python a un comportement différent de la ligne de commande
security import filename -k ~/Library/Keychains/login.keychain -P password -f pkcs12
En python J'utilise subprocess
comme ceci:
if os.path.isfile(_file) and platform.system() == 'Darwin':
keychain = os.path.expanduser('~/Library/Keychains/login.keychain')
command_line = 'security import {} -k {} -P {} -f pkcs12'.format(_file, keychain, password)
logger.info('Importing {} into OS X KeyChain.'.format(_file))
return subprocess.call(shlex.split(command_line))
Cependant, je reçois ce message d'erreur:
security: SecKeychainItemImport: One or more parameters passed to a function were not valid.
J'ai même essayé d'utiliser shell=True
mais j'ai ensuite obtenu l'utilisation security
comme si j'avais passé un mauvais argument.
Usage: security [-h] [-i] [-l] [-p prompt] [-q] [-v] [command] [opt ...]
...
...
Cependant, quand il en cours d'exécution de la ligne de commande, la commande fonctionne comme prévu:
security import <filename> -k <home>/Library/Keychains/login.keychain -P DTWLDHPYNBWBJB3 -f pkcs12
1 identity imported.
1 certificate imported.
Toute idée? Existe-t-il une restriction lors de l'exécution de security
à partir d'une console non interactive?
Toute bibliothèque python pour atteindre le même?
Observe