forked from soutade/libgourou
		
	v0.2 Fix a lot of things :
* add common method signNode() and addNonde() * Try to auth to operator if not already set * Fix an error in ADEPT protocol : attributes must be hashed in alphabetical order, not in reverse one * Update DRMProcessorClient
This commit is contained in:
		@@ -213,6 +213,25 @@ void DRMProcessorClientImpl::extractRSAPrivateKey(void* handler, unsigned char**
 | 
			
		||||
    EVP_PKEY_free(evpKey);
 | 
			
		||||
}
 | 
			
		||||
				 
 | 
			
		||||
void DRMProcessorClientImpl::extractCertificate(const unsigned char* RSAKey, unsigned int RSAKeyLength,
 | 
			
		||||
						const RSA_KEY_TYPE keyType, const std::string& password,
 | 
			
		||||
						unsigned char** certOut, unsigned int* certOutLength)
 | 
			
		||||
{
 | 
			
		||||
    PKCS12 * pkcs12;
 | 
			
		||||
    EVP_PKEY* pkey = 0;
 | 
			
		||||
    X509* cert = 0;
 | 
			
		||||
    STACK_OF(X509)* ca;
 | 
			
		||||
 | 
			
		||||
    pkcs12 = d2i_PKCS12(NULL, &RSAKey, RSAKeyLength);
 | 
			
		||||
    if (!pkcs12)
 | 
			
		||||
	EXCEPTION(gourou::CLIENT_INVALID_PKCS12, ERR_error_string(ERR_get_error(), NULL));
 | 
			
		||||
    PKCS12_parse(pkcs12, password.c_str(), &pkey, &cert, &ca);
 | 
			
		||||
 | 
			
		||||
    *certOutLength = i2d_X509(cert, certOut);
 | 
			
		||||
 | 
			
		||||
    EVP_PKEY_free(pkey);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Crypto interface */
 | 
			
		||||
void DRMProcessorClientImpl::AESEncrypt(CHAINING_MODE chaining,
 | 
			
		||||
					const unsigned char* key, unsigned int keyLength,
 | 
			
		||||
 
 | 
			
		||||
@@ -63,6 +63,9 @@ class DRMProcessorClientImpl : public gourou::DRMProcessorClient
 | 
			
		||||
    
 | 
			
		||||
    virtual void extractRSAPublicKey(void* RSAKeyHandler, unsigned char** keyOut, unsigned int* keyOutLength);
 | 
			
		||||
    virtual void extractRSAPrivateKey(void* RSAKeyHandler, unsigned char** keyOut, unsigned int* keyOutLength);
 | 
			
		||||
    virtual void extractCertificate(const unsigned char* RSAKey, unsigned int RSAKeyLength,
 | 
			
		||||
				    const RSA_KEY_TYPE keyType, const std::string& password,
 | 
			
		||||
				    unsigned char** certOut, unsigned int* certOutLength);
 | 
			
		||||
				 
 | 
			
		||||
    /* Crypto interface */
 | 
			
		||||
    virtual void AESEncrypt(CHAINING_MODE chaining,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user