def getPubKey(self, dg15): """ Retrieve the public key in PEM format from the dataGroup15 @return: A PEM reprensation of the public key @rtype: A string @raise ActiveAuthenticationException: I{The parameter type is not valid, must be a dataGroup15 object}: The parameter dg15 is not set or invalid. @raise ActiveAuthenticationException: I{The public key could not be recovered from the DG15}: Is open SSL installed? """ if type(dg15) != type(datagroup.DataGroup15(None)): raise ActiveAuthenticationException( "The parameter type is not valid, must be a dataGroup15 object" ) return self._openssl.retrieveRsaPubKey(dg15.body)
def algorithm(self, dg15): """ Return the algorithm name used to store the signature @return: A string from the OID dictionnary. @raise ActiveAuthenticationException: I{Unsupported algorithm}: The algorithm does not exist in the OID enumeration. @raise ActiveAuthenticationException: I{The parameter type is not valid, must be a dataGroup15 object}: The parameter dg15 is not set or invalid. """ if type(dg15) != type(datagroup.DataGroup15(None)): raise ActiveAuthenticationException( "The parameter type is not valid, must be a dataGroup15 object" ) algo = "" try: spec = self._asn1Parse() algo = spec.getComponentByName('algorithm').getComponentByName( 'algorithm').prettyPrint() return OID[algo] except KeyError: raise ActiveAuthenticationException("Unsupported algorithm: " + algo) except Exception as msg: raise ActiveAuthenticationException( "Active Authentication not supported: ", msg)