Implemented SOAP message generation.
							parent
							
								
									1fd6bfde3e
								
							
						
					
					
						commit
						f299c8b459
					
				@ -1,16 +1,51 @@
 | 
				
			|||||||
#include "eetsender.h"
 | 
					#include "eetsender.h"
 | 
				
			||||||
 | 
					#include "eetsigner.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDebug>
 | 
					#include <QDebug>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EetSender::EetSender(QObject *parent) : QObject(parent)
 | 
					EetSender::EetSender(QObject *parent) : QObject(parent)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    m_signer = nullptr;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void EetSender::sendRequest(EetRequest *request)
 | 
					void EetSender::sendRequest(EetRequest *request)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    if (m_signer == nullptr)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        emit certError();
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    request->setUuidZpravy(QUuid::createUuid());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    EetTemplate tempBody(BODY_TEMPLATE);
 | 
					    EetTemplate tempBody(BODY_TEMPLATE);
 | 
				
			||||||
 | 
					    tempBody.setSigner(m_signer);
 | 
				
			||||||
    QString strBody = tempBody.fillTemplate(request);
 | 
					    QString strBody = tempBody.fillTemplate(request);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    qDebug() << strBody;
 | 
					    QByteArray digest = m_signer->sha256HashData(strBody.toUtf8());
 | 
				
			||||||
 | 
					    QMap<QString, QString> val;
 | 
				
			||||||
 | 
					    val["digest"] = QString(digest.toBase64());
 | 
				
			||||||
 | 
					    EetTemplate tempSignature(SIGNATURE_TEMPLATE);
 | 
				
			||||||
 | 
					    QString strSignature = tempSignature.fillTemplate(val);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QByteArray sign = m_signer->signData(strSignature.toUtf8());
 | 
				
			||||||
 | 
					    val["signature"] = QString(sign.toBase64());
 | 
				
			||||||
 | 
					    val["soap:Body"] = strBody;
 | 
				
			||||||
 | 
					    val["certb64"] = m_signer->getCertificate();
 | 
				
			||||||
 | 
					    EetTemplate tempRequest(REQUEST_TEMPLATE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QString strRequest = tempRequest.fillTemplate(val);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    qDebug() << strRequest;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void EetSender::setupSigner(const QString &certPath, const QString &passwd)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (m_signer != nullptr)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        delete m_signer;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    m_signer = new EetSigner(this);
 | 
				
			||||||
 | 
					    m_signer->setup(certPath, QCA::SecureArray(passwd.toUtf8()));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
					Loading…
					
					
				
		Reference in New Issue