/* * Mark an acceptor context as ready for cryptographic operations */ static OM_uint32 acceptReadyEap(OM_uint32 *minor, gss_ctx_id_t ctx, gss_cred_id_t cred) { OM_uint32 major, tmpMinor; VALUE_PAIR *vp; gss_buffer_desc nameBuf = GSS_C_EMPTY_BUFFER; gssEapReleaseName(&tmpMinor, &ctx->initiatorName); major = gssEapRadiusGetRawAvp(minor, ctx->acceptorCtx.vps, PW_USER_NAME, 0, &vp); if (major == GSS_S_COMPLETE && vp->length) { nameBuf.length = vp->length; nameBuf.value = vp->vp_strvalue; } else { ctx->gssFlags |= GSS_C_ANON_FLAG; } major = gssEapImportName(minor, &nameBuf, (ctx->gssFlags & GSS_C_ANON_FLAG) ? GSS_C_NT_ANONYMOUS : GSS_C_NT_USER_NAME, ctx->mechanismUsed, &ctx->initiatorName); if (GSS_ERROR(major)) return major; major = gssEapRadiusGetRawAvp(minor, ctx->acceptorCtx.vps, PW_MS_MPPE_SEND_KEY, VENDORPEC_MS, &vp); if (GSS_ERROR(major)) { *minor = GSSEAP_KEY_UNAVAILABLE; return GSS_S_UNAVAILABLE; } major = sequenceInit(minor, &ctx->seqState, ctx->recvSeq, ((ctx->gssFlags & GSS_C_REPLAY_FLAG) != 0), ((ctx->gssFlags & GSS_C_SEQUENCE_FLAG) != 0), TRUE); if (GSS_ERROR(major)) return major; major = gssEapCreateAttrContext(minor, cred, ctx, &ctx->initiatorName->attrCtx, &ctx->expiryTime); if (GSS_ERROR(major)) return major; if (ctx->expiryTime != 0 && ctx->expiryTime < time(NULL)) { *minor = GSSEAP_CRED_EXPIRED; return GSS_S_CREDENTIALS_EXPIRED; } *minor = 0; return GSS_S_COMPLETE; }
/* * Mark an acceptor context as ready for cryptographic operations */ static OM_uint32 acceptReadyEap(OM_uint32 *minor, gss_ctx_id_t ctx, gss_cred_id_t cred) { OM_uint32 major, tmpMinor; rs_const_avp *vp; gss_buffer_desc nameBuf = GSS_C_EMPTY_BUFFER; /* Cache encryption type derived from selected mechanism OID */ major = gssEapOidToEnctype(minor, ctx->mechanismUsed, &ctx->encryptionType); if (GSS_ERROR(major)) return major; gssEapReleaseName(&tmpMinor, &ctx->initiatorName); major = gssEapRadiusGetRawAvp(minor, ctx->acceptorCtx.vps, PW_USER_NAME, 0, &vp); if (major == GSS_S_COMPLETE && rs_avp_length(vp) != 0) { rs_avp_octets_value_byref((rs_avp *)vp, (unsigned char **)&nameBuf.value, &nameBuf.length); } else { ctx->gssFlags |= GSS_C_ANON_FLAG; } major = gssEapImportName(minor, &nameBuf, (ctx->gssFlags & GSS_C_ANON_FLAG) ? GSS_C_NT_ANONYMOUS : GSS_C_NT_USER_NAME, ctx->mechanismUsed, &ctx->initiatorName); if (GSS_ERROR(major)) return major; major = gssEapRadiusGetRawAvp(minor, ctx->acceptorCtx.vps, PW_MS_MPPE_SEND_KEY, VENDORPEC_MICROSOFT, &vp); if (GSS_ERROR(major)) { *minor = GSSEAP_KEY_UNAVAILABLE; return GSS_S_UNAVAILABLE; } major = gssEapDeriveRfc3961Key(minor, rs_avp_octets_value_const_ptr(vp), rs_avp_length(vp), ctx->encryptionType, &ctx->rfc3961Key); if (GSS_ERROR(major)) return major; major = rfc3961ChecksumTypeForKey(minor, &ctx->rfc3961Key, &ctx->checksumType); if (GSS_ERROR(major)) return major; major = sequenceInit(minor, &ctx->seqState, ctx->recvSeq, ((ctx->gssFlags & GSS_C_REPLAY_FLAG) != 0), ((ctx->gssFlags & GSS_C_SEQUENCE_FLAG) != 0), TRUE); if (GSS_ERROR(major)) return major; major = gssEapCreateAttrContext(minor, cred, ctx, &ctx->initiatorName->attrCtx, &ctx->expiryTime); if (GSS_ERROR(major)) return major; if (ctx->expiryTime != 0 && ctx->expiryTime < time(NULL)) { *minor = GSSEAP_CRED_EXPIRED; return GSS_S_CREDENTIALS_EXPIRED; } *minor = 0; return GSS_S_COMPLETE; }
int eztrace_convert_coreblas_init() { addVarType( COREBLAS_TASK_ALIAS, COREBLAS_TASK_NAME, "CT_Process" ); addVarType( COREBLAS_TASKR_ALIAS, COREBLAS_TASKR_NAME, "CT_Process" ); addVarType( COREBLAS_TASKWR_ALIAS, COREBLAS_TASKWR_NAME, "CT_Thread" ); /* Level 3 Blas */ addEntityValue("gemm" , COREBLAS_STATE, "gemm" , GTG_YELLOW ); addEntityValue("herk" , COREBLAS_STATE, "herk" , GTG_WHITE ); addEntityValue("syrk" , COREBLAS_STATE, "syrk" , GTG_WHITE ); addEntityValue("hemm" , COREBLAS_STATE, "hemm" , GTG_DARKPINK); addEntityValue("symm" , COREBLAS_STATE, "symm" , GTG_DARKPINK); addEntityValue("trmm" , COREBLAS_STATE, "trmm" , GTG_PURPLE ); addEntityValue("trsm" , COREBLAS_STATE, "trsm" , GTG_RED ); addEntityValue("her2k", COREBLAS_STATE, "her2k", GTG_PINK ); addEntityValue("syr2k", COREBLAS_STATE, "syr2k", GTG_PINK ); /* Level 2 Blas */ addEntityValue("gemv" , COREBLAS_STATE, "gemv" , GTG_TEAL ); addEntityValue("gbmv" , COREBLAS_STATE, "gbmv" , GTG_TEAL ); addEntityValue("hemv" , COREBLAS_STATE, "hemv" , GTG_TEAL ); addEntityValue("hbmv" , COREBLAS_STATE, "hbmv" , GTG_TEAL ); addEntityValue("hpmv" , COREBLAS_STATE, "hpmv" , GTG_TEAL ); addEntityValue("symv" , COREBLAS_STATE, "symv" , GTG_TEAL ); addEntityValue("sbmv" , COREBLAS_STATE, "sbmv" , GTG_TEAL ); addEntityValue("spmv" , COREBLAS_STATE, "spmv" , GTG_TEAL ); addEntityValue("trmv" , COREBLAS_STATE, "trmv" , GTG_TEAL ); addEntityValue("tbmv" , COREBLAS_STATE, "tbmv" , GTG_TEAL ); addEntityValue("tpmv" , COREBLAS_STATE, "tpmv" , GTG_TEAL ); addEntityValue("trsv" , COREBLAS_STATE, "trsv" , GTG_ORANGE ); addEntityValue("tbsv" , COREBLAS_STATE, "tbsv" , GTG_ORANGE ); addEntityValue("tpsv" , COREBLAS_STATE, "tpsv" , GTG_ORANGE ); addEntityValue("ger" , COREBLAS_STATE, "ger" , GTG_SEABLUE ); addEntityValue("geru" , COREBLAS_STATE, "geru" , GTG_SEABLUE ); addEntityValue("gerc" , COREBLAS_STATE, "gerc" , GTG_SEABLUE ); addEntityValue("her" , COREBLAS_STATE, "her" , GTG_SEABLUE ); addEntityValue("hpr" , COREBLAS_STATE, "hpr" , GTG_SEABLUE ); addEntityValue("her2" , COREBLAS_STATE, "her2" , GTG_SEABLUE ); addEntityValue("hpr2" , COREBLAS_STATE, "hpr2" , GTG_SEABLUE ); addEntityValue("syr" , COREBLAS_STATE, "syr" , GTG_SEABLUE ); addEntityValue("spr" , COREBLAS_STATE, "spr" , GTG_SEABLUE ); addEntityValue("syr2" , COREBLAS_STATE, "syr2" , GTG_SEABLUE ); addEntityValue("spr2" , COREBLAS_STATE, "spr2" , GTG_SEABLUE ); /* Level 1 BLAS */ addEntityValue("rotg" , COREBLAS_STATE, "rotg" , GTG_PURPLE ); addEntityValue("rotmg", COREBLAS_STATE, "rotmg", GTG_PURPLE ); addEntityValue("rot" , COREBLAS_STATE, "rot" , GTG_PURPLE ); addEntityValue("rotm" , COREBLAS_STATE, "rotm" , GTG_PURPLE ); addEntityValue("swap" , COREBLAS_STATE, "swap" , GTG_ORANGE ); addEntityValue("scal" , COREBLAS_STATE, "scal" , GTG_ORANGE ); addEntityValue("copy" , COREBLAS_STATE, "copy" , GTG_ORANGE ); addEntityValue("axpy" , COREBLAS_STATE, "axpy" , GTG_ORANGE ); addEntityValue("dot" , COREBLAS_STATE, "dot" , GTG_LIGHTPINK); addEntityValue("dotu" , COREBLAS_STATE, "dotu" , GTG_LIGHTPINK); addEntityValue("dotc" , COREBLAS_STATE, "dotc" , GTG_LIGHTPINK); addEntityValue("xdot" , COREBLAS_STATE, "xdot" , GTG_LIGHTPINK); addEntityValue("nrm2" , COREBLAS_STATE, "nrm2" , GTG_LIGHTPINK); addEntityValue("asum" , COREBLAS_STATE, "asum" , GTG_LIGHTPINK); addEntityValue("amax" , COREBLAS_STATE, "amax" , GTG_LIGHTPINK); /* Lapack */ addEntityValue("lacpy", COREBLAS_STATE, "lacpy", GTG_LIGHTPINK ); addEntityValue("lange", COREBLAS_STATE, "lange", GTG_LIGHTPINK ); addEntityValue("lanhe", COREBLAS_STATE, "lanhe", GTG_LIGHTPINK ); addEntityValue("lansy", COREBLAS_STATE, "lansy", GTG_LIGHTPINK ); addEntityValue("larfb", COREBLAS_STATE, "larfb", GTG_YELLOW ); addEntityValue("larft", COREBLAS_STATE, "larft", GTG_RED ); addEntityValue("laswp", COREBLAS_STATE, "laswp", GTG_ORANGE ); addEntityValue("lauum", COREBLAS_STATE, "lauum", GTG_LIGHTPINK ); addEntityValue("potrf", COREBLAS_STATE, "potrf", GTG_GREEN ); addEntityValue("trtri", COREBLAS_STATE, "trtri", GTG_LIGHTPINK ); addEntityValue("laset", COREBLAS_STATE, "laset", GTG_LIGHTPINK ); /* PLASMA coreblas */ addEntityValue("gelqt", COREBLAS_STATE, "gelqt", GTG_GREEN ); addEntityValue("geqrt", COREBLAS_STATE, "geqrt", GTG_GREEN ); addEntityValue("gessm", COREBLAS_STATE, "gessm", GTG_BLUE ); addEntityValue("getrf", COREBLAS_STATE, "getrf", GTG_GREEN ); addEntityValue("getro", COREBLAS_STATE, "getro", GTG_ORANGE ); addEntityValue("ssssm", COREBLAS_STATE, "ssssm", GTG_YELLOW ); addEntityValue("titro", COREBLAS_STATE, "titro", GTG_LIGHTPINK ); addEntityValue("trbmm", COREBLAS_STATE, "trbmm", GTG_BLUE ); addEntityValue("trgmm", COREBLAS_STATE, "trgmm", GTG_BLUE ); addEntityValue("tslqt", COREBLAS_STATE, "tslqt", GTG_RED ); addEntityValue("tsmlq", COREBLAS_STATE, "tsmlq", GTG_YELLOW ); addEntityValue("tsmqr", COREBLAS_STATE, "tsmqr", GTG_YELLOW ); addEntityValue("tsqrt", COREBLAS_STATE, "tsqrt", GTG_RED ); addEntityValue("tsrfb", COREBLAS_STATE, "tsrfb", GTG_BLUE ); addEntityValue("tstrf", COREBLAS_STATE, "tstrf", GTG_BLUE ); addEntityValue("ttlqt", COREBLAS_STATE, "ttlqt", GTG_REDBLOOD ); addEntityValue("ttmlq", COREBLAS_STATE, "ttmlq", GTG_ORANGE ); addEntityValue("ttmqr", COREBLAS_STATE, "ttmqr", GTG_ORANGE ); addEntityValue("ttqrt", COREBLAS_STATE, "ttqrt", GTG_REDBLOOD ); addEntityValue("ttrfb", COREBLAS_STATE, "ttrfb", GTG_SEABLUE ); addEntityValue("unmlq", COREBLAS_STATE, "unmlq", GTG_YELLOW ); addEntityValue("unmqr", COREBLAS_STATE, "unmqr", GTG_YELLOW ); addEntityValue("getrip",COREBLAS_STATE, "getrip",GTG_LIGHTPINK ); addEntityValue("plghe", COREBLAS_STATE, "plghe", GTG_LIGHTPINK ); addEntityValue("plgsy", COREBLAS_STATE, "plgsy", GTG_LIGHTPINK ); addEntityValue("shift", COREBLAS_STATE, "shift", GTG_LIGHTPINK ); addEntityValue("shiftw",COREBLAS_STATE, "shiftw",GTG_LIGHTPINK ); addEntityValue("swpab", COREBLAS_STATE, "swpab", GTG_LIGHTPINK ); addEntityValue("plrnt", COREBLAS_STATE, "plrnt", GTG_LIGHTPINK ); addEntityValue("brdalg", COREBLAS_STATE, "brdalg", GTG_LIGHTPINK ); addEntityValue("trdalg", COREBLAS_STATE, "trdalg", GTG_LIGHTPINK ); addEntityValue("hegst", COREBLAS_STATE, "hegst", GTG_LIGHTPINK ); addEntityValue("sygst", COREBLAS_STATE, "sygst", GTG_LIGHTPINK ); addEntityValue("herfb", COREBLAS_STATE, "herfb", GTG_LIGHTPINK ); addEntityValue("syrfb", COREBLAS_STATE, "syrfb", GTG_LIGHTPINK ); /* plasma coreblas */ addEntityValue ("wait", COREBLAS_STATE, "wait", GTG_BLACK ); #ifdef TRACE_BY_SEQUENCE sequenceInit(); #endif return 0; }
/* * Mark an acceptor context as ready for cryptographic operations */ static OM_uint32 acceptReadyEap(OM_uint32 *minor, gss_ctx_id_t ctx, gss_cred_id_t cred) { OM_uint32 major, tmpMinor; #ifdef MECH_EAP VALUE_PAIR *vp; gss_buffer_desc nameBuf = GSS_C_EMPTY_BUFFER; /* Cache encryption type derived from selected mechanism OID */ major = gssEapOidToEnctype(minor, ctx->mechanismUsed, &ctx->encryptionType); #else /* Cache encryption type specified by IdP */ major = krbStringToEnctype(gl_encryption_type, &ctx->encryptionType); #endif if (GSS_ERROR(major)) return major; #ifdef MECH_EAP gssEapReleaseName(&tmpMinor, &ctx->initiatorName); major = gssEapRadiusGetRawAvp(minor, ctx->acceptorCtx.vps, PW_USER_NAME, 0, &vp); if (major == GSS_S_COMPLETE && vp->length) { nameBuf.length = vp->length; nameBuf.value = vp->vp_strvalue; } else { ctx->gssFlags |= GSS_C_ANON_FLAG; } major = gssEapImportName(minor, &nameBuf, (ctx->gssFlags & GSS_C_ANON_FLAG) ? GSS_C_NT_ANONYMOUS : GSS_C_NT_USER_NAME, ctx->mechanismUsed, &ctx->initiatorName); if (GSS_ERROR(major)) return major; major = gssEapRadiusGetRawAvp(minor, ctx->acceptorCtx.vps, PW_MS_MPPE_SEND_KEY, VENDORPEC_MS, &vp); if (GSS_ERROR(major)) { *minor = GSSEAP_KEY_UNAVAILABLE; return GSS_S_UNAVAILABLE; } major = gssEapDeriveRfc3961Key(minor, rs_avp_octets_value_const_ptr(vp), rs_avp_length(vp), ctx->encryptionType, &ctx->rfc3961Key); #else major = gssEapDeriveRfc3961Key(minor, gl_generated_key, strlen(gl_generated_key), ctx->encryptionType, &ctx->rfc3961Key); #endif if (GSS_ERROR(major)) return major; major = rfc3961ChecksumTypeForKey(minor, &ctx->rfc3961Key, &ctx->checksumType); if (GSS_ERROR(major)) return major; major = sequenceInit(minor, &ctx->seqState, ctx->recvSeq, ((ctx->gssFlags & GSS_C_REPLAY_FLAG) != 0), ((ctx->gssFlags & GSS_C_SEQUENCE_FLAG) != 0), TRUE); if (GSS_ERROR(major)) return major; #ifdef MECH_EAP major = gssEapCreateAttrContext(minor, cred, ctx, &ctx->initiatorName->attrCtx, &ctx->expiryTime); if (GSS_ERROR(major)) return major; #else ctx->expiryTime = 0; /* indefinite */ #endif if (ctx->expiryTime != 0 && ctx->expiryTime < time(NULL)) { *minor = GSSEAP_CRED_EXPIRED; return GSS_S_CREDENTIALS_EXPIRED; } #ifndef MECH_EAP ctx->gssFlags |= GSS_C_PROT_READY_FLAG; #endif *minor = 0; return GSS_S_COMPLETE; }