Ejemplo n.º 1
0
 RexxReturnCode REXXENTRY rx3270GetFTState(PSZ Name, LONG Argc, RXSTRING Argv[], PSZ Queuename, PRXSTRING Retstr)
 {
	static const struct _state
	{
		const gchar 	*name;
		enum ft_state	state;
	} state[] =
	{
			{ "NONE",		FT_NONE			},
			{ "AWAIT_ACK",	FT_AWAIT_ACK	},
			{ "RUNNING",	FT_RUNNING		},
			{ "ABORT_WAIT",	FT_ABORT_WAIT	},
			{ "ABORT_SENT",	FT_ABORT_SENT	}
	};

	enum ft_state current_state = GetFileTransferState();
	int f;

	for(f = 0;f < G_N_ELEMENTS(state); f++)
	{
		if(current_state == state[f].state)
			return RetString(Retstr,state[f].name);
	}

	return RetValue(Retstr,(int) current_state);
 }
QString CSmfCredMgrClientSymbian::storeRSAKeysL(const QString KeyLabel,
		const QString keydata, const QDateTime Validity)
	{
	RDebug::Printf("Sending store RSA key message to server");

	TPtrC labelPtr(qt_QString2TPtrC(KeyLabel));
	TPtr dataPtr((qt_QString2HBufC(keydata)->Des()));

	QDateTime CurrentTime = QDateTime::currentDateTime();
	TTimeIntervalSeconds duration(CurrentTime.secsTo(Validity));

	TTime startDate;
	startDate.UniversalTime();

	TTime endDate(startDate);
	endDate += duration;

	CSmfRsaKeyParameters* storeRSAKeysparams = CSmfRsaKeyParameters::NewL(
			labelPtr, startDate, endDate, (dataPtr.Collapse()));
	CleanupStack::PushL(storeRSAKeysparams);

	CBufFlat* buf = CBufFlat::NewL(KMinBufSize);
	CleanupStack::PushL(buf);
	RBufWriteStream stream(*buf);
	CleanupClosePushL(stream);

	storeRSAKeysparams->ExternalizeL(stream);
	stream.CommitL();

	TPtr8 bufPtr = buf->Ptr(0);

	TIpcArgs args;
	args.Set(0, &bufPtr);

	CleanupStack::PopAndDestroy(&stream);

	HBufC8* retBuf = HBufC8::NewLC(KSHA1HashLengthBytes);
	TPtr8 retBufPtr(retBuf->Des());
	args.Set(1, &retBufPtr);

	iSession.RequestService(ESmfStoreRSAKey, args);

	RDebug::Printf("SMF: Message completed");

	TBuf<KSHA1HashLengthBytes> key;
	key.Copy(retBufPtr);

	QString RetString(qt_TDesC2QString(key));

	CleanupStack::Pop(retBuf);
	CleanupStack::PopAndDestroy(buf);
	CleanupStack::PopAndDestroy(storeRSAKeysparams);

	RDebug::Printf("-In storeAuthDataL()");
	
	return (RetString);

	}
QString CSmfCredMgrClientSymbian::generateNONCE(const qint64 Length)
	{
	srand(time(0));
	QDateTime UniqueNumber = QDateTime::currentDateTime();

	//read upto milliseconds
	QString RetString(UniqueNumber.toString("hh:mm:ss.zzz"));

	QString Letters(
			"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");

	//append a randomly generated string to RetString
	for (int i = RetString.count(); i < Length; i++)
		{
		RetString.insert((i), Letters.at(rand() % Letters.size()));
		}

	return RetString;
	}