void ms_zrtp_context_destroy(MSZrtpContext *ctx) { ms_message("Stopping ZRTP context"); bzrtp_destroyBzrtpContext(ctx->zrtpContext, ctx->self_ssrc); if (ctx->zidFilename) free(ctx->zidFilename); if (ctx->peerURI) free(ctx->peerURI); free(ctx); ms_message("ORTP-ZRTP context destroyed"); }
static int testAlgoSetterGetter(uint8_t algoType, uint8_t *contextTypes, uint8_t contextTypesCount, uint8_t *expectedTypes, uint8_t expectedTypesCount) { int retval; uint8_t compareTypes[8]; uint8_t compareTypesCount; bzrtpContext_t *zrtpContext = bzrtp_createBzrtpContext(); bzrtp_initBzrtpContext(zrtpContext, 0x12345678); bzrtp_setSupportedCryptoTypes(zrtpContext, algoType, contextTypes, contextTypesCount); compareTypesCount = bzrtp_getSupportedCryptoTypes(zrtpContext, algoType, compareTypes); retval = compareAlgoTypes(compareTypes, compareTypesCount, expectedTypes, expectedTypesCount); bzrtp_destroyBzrtpContext(zrtpContext, 0x12345678); return retval; }
static int testAlgoType(uint8_t algoType, uint8_t *packetTypes, uint8_t packetTypesCount, uint8_t *contextTypes, uint8_t contextTypesCount, uint8_t expectedType) { int retval; bzrtpContext_t *zrtpContext = bzrtp_createBzrtpContext(); bzrtpPacket_t *helloPacket = NULL; bzrtp_initBzrtpContext(zrtpContext, 0x12345678); if (contextTypes != NULL) { bzrtp_setSupportedCryptoTypes(zrtpContext, algoType, contextTypes, contextTypesCount); } helloPacket = bzrtp_createZrtpPacket(zrtpContext, zrtpContext->channelContext[0], MSGTYPE_HELLO, &retval); if (packetTypes != NULL) { bzrtpHelloMessage_t *helloMessage = (bzrtpHelloMessage_t *)helloPacket->messageData; setHelloMessageAlgo(helloMessage, algoType, packetTypes, packetTypesCount); } CU_ASSERT_FALSE(crypoAlgoAgreement(zrtpContext, zrtpContext->channelContext[0], helloPacket->messageData)); retval = compareAllAlgoTypesWithExpectedChangedOnly(zrtpContext->channelContext[0], algoType, expectedType); bzrtp_freeZrtpPacket(helloPacket); bzrtp_destroyBzrtpContext(zrtpContext, 0x12345678); return retval; }