Merge branch 'develop'

Fix - Obtener RFC del certificado
This commit is contained in:
Mauricio Baeza 2017-10-30 21:58:49 -06:00
commit ac586115a0
1 changed files with 11 additions and 12 deletions

View File

@ -331,7 +331,8 @@ class Certificado(object):
result = _call(args.format(self._path_cer, 'serial'))
serie = result.split('=')[1].split('\n')[0][1::2]
result = _call(args.format(self._path_cer, 'subject'))
rfc = result.split('=')[5].split('/')[0].strip()
#~ rfc = result.split('=')[5].split('/')[0].strip()
rfc = result.split('x500UniqueIdentifier = ')[1][:13].strip()
if not DEBUG:
if not rfc == session_rfc:
@ -359,14 +360,12 @@ class Certificado(object):
args = 'openssl x509 -inform DER -in "{}" -out "{}"'
_call(args.format(self._path_cer, tmp_cer))
args = 'openssl pkcs8 -inform DER -in "{}" -passin pass:{} -out "{}"'
args = 'openssl pkcs8 -inform DER -in "{}" -passin pass:"{}" -out "{}"'
_call(args.format(self._path_key, password, tmp_key))
args = 'openssl pkcs12 -export -in "{}" -inkey "{}" -name "{}" -passout ' \
'pass:"{}" -out "{}"'
_call(args.format(tmp_cer, tmp_key, rfc,
hashlib.md5(rfc.encode()).hexdigest(), tmp_p12))
#~ data = open(tmp_p12, 'rb').read()
args = 'openssl pkcs12 -export -in "{}" -inkey "{}" -name "{}" ' \
'-passout pass:"{}" -out "{}"'
_call(args.format(tmp_cer, tmp_key, rfc, _get_md5(rfc), tmp_p12))
data = read_file(tmp_p12)
self._kill(tmp_cer)
@ -378,14 +377,14 @@ class Certificado(object):
def _get_info_key(self, password, rfc):
data = {}
args = 'openssl pkcs8 -inform DER -in "{}" -passin pass:{}'
args = 'openssl pkcs8 -inform DER -in "{}" -passin pass:"{}"'
try:
result = _call(args.format(self._path_key, password))
except Exception as e:
self.error = 'Contraseña incorrecta'
return data
args = 'openssl pkcs8 -inform DER -in "{}" -passin pass:{} | ' \
args = 'openssl pkcs8 -inform DER -in "{}" -passin pass:"{}" | ' \
'openssl rsa -noout -modulus'
mod_key = _call(args.format(self._path_key, password))
@ -393,8 +392,8 @@ class Certificado(object):
self.error = 'Los archivos no son pareja'
return data
args = 'openssl pkcs8 -inform DER -in "{}" -passin pass:{} | ' \
'openssl rsa -des3 -passout pass:{}'.format(
args = 'openssl pkcs8 -inform DER -in "{}" -passin pass:"{}" | ' \
'openssl rsa -des3 -passout pass:"{}"'.format(
self._path_key, password, _get_md5(rfc))
key_enc = _call(args)
@ -442,7 +441,7 @@ def make_xml(data, certificado):
'pass': _get_md5(certificado.rfc)
}
args = '"{xsltproc}" "{xslt}" "{xml}" | ' \
'"{openssl}" dgst -sha256 -sign "{key}" -passin pass:{pass} | ' \
'"{openssl}" dgst -sha256 -sign "{key}" -passin pass:"{pass}" | ' \
'"{openssl}" enc -base64 -A'.format(**data)
sello = _call(args)