Lines Matching defs:oc
95 OMAContext *oc = s->priv_data;
96 av_freep(&oc->av_des);
114 OMAContext *oc = s->priv_data;
123 if (r_val != oc->r_val) {
124 memset(oc->r_val, 0, 24);
125 memcpy(oc->r_val, r_val, len);
127 memcpy(&oc->r_val[16], r_val, 8);
130 if (n_val != oc->n_val) {
131 memset(oc->n_val, 0, 24);
132 memcpy(oc->n_val, n_val, len);
134 memcpy(&oc->n_val[16], n_val, 8);
145 OMAContext *oc = s->priv_data;
150 size < OMA_ENC_HEADER_SIZE + oc->k_size + oc->e_size + oc->i_size ||
160 av_des_crypt(av_des, oc->m_val, &enc_header[48], 1, NULL, 1);
163 av_des_init(av_des, oc->m_val, 64, 0);
164 av_des_crypt(av_des, oc->s_val, NULL, 1, NULL, 0);
167 pos = OMA_ENC_HEADER_SIZE + oc->k_size + oc->e_size;
168 av_des_init(av_des, oc->s_val, 64, 0);
169 av_des_mac(av_des, oc->sm_val, &enc_header[pos], (oc->i_size >> 3));
171 pos += oc->i_size;
175 return memcmp(&enc_header[pos], oc->sm_val, 8) ? -1 : 0;
181 OMAContext *oc = s->priv_data;
187 size < OMA_ENC_HEADER_SIZE + oc->k_size + 4)
190 pos = OMA_ENC_HEADER_SIZE + oc->k_size;
197 if (AV_RB32(&enc_header[pos]) != oc->rid)
214 av_des_crypt(av_des, oc->r_val, &enc_header[pos], 2, NULL, 1);
215 kset(s, oc->r_val, NULL, 16);
216 if (!rprobe(s, enc_header, size, oc->r_val)) {
229 OMAContext *oc = s->priv_data;
233 oc->encrypted = 1;
261 oc->k_size = AV_RB16(&gdata[2]);
262 oc->e_size = AV_RB16(&gdata[4]);
263 oc->i_size = AV_RB16(&gdata[6]);
264 oc->s_size = AV_RB16(&gdata[8]);
270 if (OMA_ENC_HEADER_SIZE + oc->k_size + oc->e_size + oc->i_size + 8 > geob->datasize ||
275 oc->rid = AV_RB32(&gdata[OMA_ENC_HEADER_SIZE + 28]);
276 av_log(s, AV_LOG_DEBUG, "RID: %.8"PRIx32"\n", oc->rid);
278 memcpy(oc->iv, &header[0x58], 8);
279 hex_log(s, AV_LOG_DEBUG, "IV", oc->iv, 8);
282 &gdata[OMA_ENC_HEADER_SIZE + oc->k_size + oc->e_size + oc->i_size],
288 if (!memcmp(oc->r_val, (const uint8_t[8]){0}, 8) ||
289 rprobe(s, gdata, geob->datasize, oc->r_val) < 0 &&
290 nprobe(s, gdata, geob->datasize, oc->n_val) < 0) {
297 if (!rprobe(s, gdata, geob->datasize, oc->r_val) ||
298 !nprobe(s, gdata, geob->datasize, oc->n_val))
307 oc->av_des = av_des_alloc();
308 if (!oc->av_des)
312 av_des_init(oc->av_des, oc->m_val, 64, 0);
313 av_des_crypt(oc->av_des, oc->e_val,
315 hex_log(s, AV_LOG_DEBUG, "EK", oc->e_val, 8);
318 av_des_init(oc->av_des, oc->e_val, 64, 1);
325 OMAContext *oc = s->priv_data;
342 if (pos >= oc->content_start && byte_rate > 0) {
344 pkt->dts = av_rescale(pos - oc->content_start, st->time_base.den,
348 if (oc->encrypted) {
352 av_des_crypt(oc->av_des, pkt->data, pkt->data,
353 (packet_size >> 3), oc->iv, 1);
355 memset(oc->iv, 0, 8);
413 OMAContext *oc = s->priv_data;
434 oc->content_start = avio_tell(s->pb);
457 oc->read_packet = read_packet;
531 oc->read_packet = aal_read_packet;
538 oc->read_packet = aal_read_packet;
553 OMAContext *oc = s->priv_data;
554 return oc->read_packet(s, pkt);
581 OMAContext *oc = s->priv_data;
590 if (!oc->encrypted)
594 if (err || avio_tell(s->pb) < oc->content_start)
598 if ((err = avio_read(s->pb, oc->iv, 8)) < 8) {
606 memset(oc->iv, 0, 8);