mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
x509: avoid use of nss.data_to_hex
Avoid use of the nss.data_to_hex function for formatting certificate fingerprints. Add our own helper functions to format the fingerprints as hex (with colons). Part of: https://fedorahosted.org/freeipa/ticket/6398 Reviewed-By: Jan Cholasta <jcholast@redhat.com> Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
This commit is contained in:
committed by
David Kupka
parent
85487281cd
commit
44c2d685f0
@@ -33,6 +33,7 @@
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import binascii
|
||||
import collections
|
||||
import os
|
||||
import sys
|
||||
@@ -552,6 +553,28 @@ def process_othernames(gns):
|
||||
yield gn
|
||||
|
||||
|
||||
def chunk(size, s):
|
||||
"""Yield chunks of the specified size from the given string.
|
||||
|
||||
The input must be a multiple of the chunk size (otherwise
|
||||
trailing characters are dropped).
|
||||
|
||||
Works on character strings only.
|
||||
|
||||
"""
|
||||
return (u''.join(span) for span in six.moves.zip(*[iter(s)] * size))
|
||||
|
||||
|
||||
def add_colons(s):
|
||||
"""Add colons between each nibble pair in a hex string."""
|
||||
return u':'.join(chunk(2, s))
|
||||
|
||||
|
||||
def to_hex_with_colons(bs):
|
||||
"""Convert bytes to a hex string with colons."""
|
||||
return add_colons(binascii.hexlify(bs).decode('utf-8'))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# this can be run with:
|
||||
# python ipalib/x509.py < /etc/ipa/ca.crt
|
||||
|
||||
Reference in New Issue
Block a user