/* write to a file */ MQeFieldsAttrHndl hAttr = NULL; MQeStringHndl hKeySeed = NULL, hDir = NULL, hFile = NULL; MQeStringHndl hFieldName = NULL, hFieldData = NULL; MQeExceptBlock exceptBlock; MQeLocalSecureHndl hLocalSecure = NULL; MQeFieldsHndl hData = NULL; MQEBYTE outBuf[128]; MQEINT32 bufLen = 128; MQERETURN rc; /* create a key seed string */ rc = mqeString_newChar8(&exceptBlock, &hKeySeed, "my secret key"); /* create a new attribute with a RC4 cryptor */ rc = mqeFieldsAttr_new(&exceptBlock, hAttr, NULL, MQE_RC4_CRYPTOR_CLASS_NAME, NULL, hKeySeed); /* create a dir string */ rc = mqeString_newChar8( &exceptBlock, &hDir, ".\\"); /* create a file name string */ rc = mqeString_newChar8( &exceptBlock, &hFile, "localSecureFile.txt"); /* create an MQeLocalSecure */ rc = mqeLocalSecure_new( &exceptBlock, &hLocalSecure); /* open file */ rc = mqeLocalSecure_open(hLocalSecure, &exceptBlock, hDir, hFile); /* create a data Fields */ rc = mqeFields_new(&exceptBlock, &hData); /* add some test data */ rc = mqeString_newChar8(&exceptBlock, &hFieldName, "testdata"); rc = mqeString_newChar8(&exceptBlock, &hFieldData, "0123456789abcdef...."); rc = mqeFields_putAscii(hData, &exceptBlock, hFieldName, hFieldData); /* dump (protect) data Fields */ rc = mqeFields_dump(hData, &exceptBlock, outBuf, &buflen); /* write to .\\ocalSecureFile.txt */ rc = mqeLocalSecure_write(hLocalSecure, &exceptBlock, outBuf, bufLen, hAttr, NULL); /* read from a file */ MQeFieldsAttrHndl hAttr = NULL; MQeStringHndl hKeySeed = NULL, hDir = NULL, hFile = NULL; MQeStringHndl hFieldName = NULL, hFieldData = NULL; MQeExceptBlock exceptBlock; MQeLocalSecureHndl hLocalSecure = NULL; MQERETURN rc; MQEBYTE outBuf[128]; MQEINT32 bufLen = 128; /* create a key seed string */ rc = mqeString_newChar8(&exceptBlock, &hKeySeed, "my secret key"); /* create a new attribute with a RC4 cryptor */ rc = mqeFieldsAttr_new(&exceptBlock, &hAttr, NULL, MQE_RC4_CRYPTOR_CLASS_NAME, NULL, hKeySeed); /* create a dir string */ rc = mqeString_newChar8( &exceptBlock, &hDir, ".\\"); /* create a file name string */ rc = mqeString_newChar8( &exceptBlock, &hFile, "localSecureFile.txt"); /* create an MQeLocalSecure */ rc = mqeLocalSecure_new( &exceptBlock, &hLocalSecure); /* open file */ rc = mqeLocalSecure_open(hLocalSecure, &exceptBlock, hDir, hFile); /* read from .\\ocalSecureFile.txt */ rc = mqeLocalSecure_read(hLocalSecure, &exceptBlock, outBuf, &Buflen, hAttr, NULL); /* create a data Fields */ rc = mqeFields_new(&exceptBlock, &hData); /* restore data Fields */ rc = mqeFields_restore(hData, &exceptBlock, outBuf, bufLen); /* read test data */ rc = mqeString_newChar8(&exceptBlock, &hFieldName, "testdata"); rc = mqeFields_getAscii(hData, &exceptBlock, &hFieldData, hFieldName);
/* dump to a buffer */ MQeFieldsAttrHndl hAttr = NULL; MQeStringHndl hKeySeed = NULL, hFieldName = NULL, hFieldData = NULL; MQeExceptBlock exceptBlock; MQeFieldsHndl hData = NULL; MQEBYTE outBuf[128]; MQEINT32 bufLen = 128; MQERETURN rc; /* create a key seed string */ rc = mqeString_newChar8(&exceptBlock, &hKeySeed, "my secret key"); /* create a new attribute with a RC4 cryptor */ rc = mqeFieldsAttr_new(&exceptBlock, &hAttr, NULL, MQE_RC4_CRYPTOR_CLASS_NAME, NULL, hKeySeed); /* create a data Fields */ rc = mqeFields_new(&exceptBlock, &hData); /* set the attribute to the data Fields */ rc = mqeFields_setAttribute(hData, &exceptBlock, hAttr); /* add some test data */ rc = mqeString_newChar8(&exceptBlock, &hFieldName, "testdata"); rc = mqeString_newChar8(&exceptBlock, &hFieldData, "0123456789abcdef...."); rc = mqeFields_putAscii(hData, &exceptBlock, hFieldName, hFieldData); /* dump (protect) data Fields */ rc = mqeFields_dump(hData, &exceptBlock, outBuf, &bufLen); /* restor from a buffer */ MQeFieldsAttrHndl hAttr = NULL; MQeStringHndl hKeySeed = NULL, hFieldName = NULL, hFieldData = NULL; MQeExceptBlock exceptBlock; MQERETURN rc; MQEBYTE outBuf[128]; MQEINT32 bufLen = 128; ... /* assume protected data is in inBuf and its length is in bufLen */ /* create a key seed string */ rc = mqeString_newChar8(&exceptBlock, &hKeySeed, "my secret key"); /* create a new attribute with a RC4 cryptor */ rc = mqeFieldsAttr_new(&exceptBlock, &hAttr, NULL, MQE_RC4_CRYPTOR_CLASS_NAME, NULL, hKeySeed); /* create a data Fields */ rc = mqeFields_new(&exceptBlock, &hData); /* set the attribute to the data Fields */ rc = mqeFields_setAttribute(hData, &exceptBlock, hAttr); /* restore data Fields */ rc = mqeFields_restore(hData, &exceptBlock, inBuf, bufLen); /* read test data */ rc = mqeString_newChar8(&exceptBlock, &hFieldName, "testdata"); rc = mqeFields_getAscii(hData, &exceptBlock, &hFieldData, hFieldName);
Parent topic: Local security