def commande_restaurer_backup_cle(self): with open ('/home/mathieu/mgdev/certs/pki.connecteur.key', 'rb') as fichier: key_bytes = fichier.read() clecert = EnveloppeCleCert() clecert.key_from_pem_bytes(key_bytes, None) clecert.password = self.mot_de_passe.encode('utf-8') key_chiffree_bytes = clecert.private_key_bytes self.cert_maitredescles_recu.wait(5) mot_de_passe_chiffre, fingerprint = self.certificat_maitredescles.chiffrage_asymmetrique(self.mot_de_passe.encode('utf-8')) enveloppe = EnveloppeCleCert() enveloppe.key_from_pem_bytes(key_bytes, None) requete_cle_racine = { 'cle_privee': key_chiffree_bytes.decode('utf-8'), 'mot_de_passe_chiffre': str(b64encode(mot_de_passe_chiffre), 'utf-8'), # 'fingerprint_base64': 'Ut/UQ5aKomoGzXB7mpUduPk4Xzg=', } enveloppe_requete = self.generateur.transmettre_commande( requete_cle_racine, 'commande.millegrilles.domaines.MaitreDesCles.%s' % ConstantesMaitreDesCles.COMMANDE_RESTAURER_BACKUP_CLES, correlation_id='abcd-1234', reply_to=self.queue_name ) print("Envoi requete: %s" % enveloppe_requete) return enveloppe_requete
def charger_cle_cert(self): clecert = EnveloppeCleCert() with open( '%s/%s.key.pem' % (self.folder_output, ConstantesGenerateurCertificat.ROLE_DEPLOYEUR), 'rb') as fichier: key_bytes = fichier.read() clecert.key_from_pem_bytes(key_bytes) with open( '%s/%s.cert.pem' % (self.folder_output, ConstantesGenerateurCertificat.ROLE_DEPLOYEUR), 'rb') as fichier: cert_bytes = fichier.read() clecert.cert_from_pem_bytes(cert_bytes) # Verifier que les cles correspondent corresp = clecert.cle_correspondent() print("Cle et cert deployeur correspondent: %s" % corresp) with open( '%s/%s.cert.pem' % (self.folder_output, ConstantesGenerateurCertificat.ROLE_MQ), 'rb') as fichier: cert_bytes = fichier.read() clecert.cert_from_pem_bytes(cert_bytes) # Verifier que les cles ne correspondent pas corresp = clecert.cle_correspondent() print("Cle deployeur et cert mq correspondent: %s" % corresp)
def dechiffrer_backup(path_catalogue): with lzma.open(path_catalogue, 'rb') as fichier: catalogue = json.load(fichier) path_archives = path.dirname(path_catalogue) path_transactions = path.abspath( path.join(path_archives, '..', 'transactions')) nom_transaction = catalogue['transactions_nomfichier'] path_fichier_transactions = path.join(path_transactions, nom_transaction) path_output = path_fichier_transactions.replace('.mgs1', '') iv = catalogue['iv'] password = catalogue['cle'] # Dechiffrer cle secrete avec cle de millegrille with open('/home/mathieu/mgdev/cle_mg/cle.pem', 'r') as fichier: private_key = fichier.read() with open('/home/mathieu/mgdev/cle_mg/password.txt', 'r') as fichier: pwd_cle_privee = fichier.read() pwd_cle_privee = pwd_cle_privee.strip().encode('utf-8') clecert_millegrille = EnveloppeCleCert() clecert_millegrille.key_from_pem_bytes(private_key.encode('utf-8'), pwd_cle_privee) test_fichier = TestFichier() test_fichier.dechiffrer_asymmetrique(path_fichier_transactions, path_output, iv, password, clecert_millegrille)
def charger_certificats(self): secret_path = path.abspath(self.secret_path) # Charger mots de passes middleware with open( path.join(secret_path, ConstantesServiceMonitor.FICHIER_MONGO_MOTDEPASSE), 'r') as fichiers: self._passwd_mongo = fichiers.read() with open( path.join(secret_path, ConstantesServiceMonitor.FICHIER_MQ_MOTDEPASSE), 'r') as fichiers: self._passwd_mq = fichiers.read() # Charger information certificat monitor clecert_monitor = EnveloppeCleCert() with open(path.join(secret_path, 'pki.monitor_dependant.key.pem'), 'rb') as fichiers: key_pem = fichiers.read() try: cert_pem = self._charger_certificat_docker( 'pki.monitor_dependant.cert') clecert_monitor.from_pem_bytes(key_pem, cert_pem) # Conserver reference au cert monitor self.certificats[ GestionnaireCertificats.MONITOR_CERT_PATH] = self.certificats[ 'pki.monitor_dependant.cert'] self.certificats[ GestionnaireCertificats. MONITOR_KEY_FILE] = 'pki.monitor_dependant.key.pem' except AttributeError: self.__logger.info( "Certificat monitor_dependant non trouve, on va l'attendre") clecert_monitor.key_from_pem_bytes(key_pem) self.clecert_monitor = clecert_monitor # Charger le certificat de millegrille, chaine pour intermediaire self._charger_certificat_docker('pki.millegrille.cert')
def commande_signer_cle_backup(self): with open ('/home/mathieu/mgdev/certs/pki.connecteur.key', 'rb') as fichier: key_bytes = fichier.read() enveloppe = EnveloppeCleCert() enveloppe.key_from_pem_bytes(key_bytes, None) public_bytes = enveloppe.public_bytes requete_cle_racine = { 'cle_publique': public_bytes.decode('utf-8'), } enveloppe_requete = self.generateur.transmettre_commande( requete_cle_racine, 'commande.millegrilles.domaines.MaitreDesCles.%s' % ConstantesMaitreDesCles.COMMANDE_SIGNER_CLE_BACKUP, correlation_id='abcd-1234', reply_to=self.queue_name ) print("Envoi requete: %s" % enveloppe_requete) return enveloppe_requete