From e97a64efe8e7e8f34c488126055191b996ab15ba Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Wed, 1 Feb 2006 16:27:57 +0000 Subject: [PATCH] * modules/demux/mp4: more explicit error messages for DRMS failures. --- modules/demux/mp4/drms.c | 20 +++++++++++--------- modules/demux/mp4/libmp4.c | 6 ++++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/modules/demux/mp4/drms.c b/modules/demux/mp4/drms.c index f4f7bebae5..32d91ecabd 100644 --- a/modules/demux/mp4/drms.c +++ b/modules/demux/mp4/drms.c @@ -289,8 +289,10 @@ void drms_decrypt( void *_p_drms, uint32_t *p_buffer, uint32_t i_bytes ) * 0: success * -1: unimplemented * -2: invalid argument - * -3: failed to get user key - * -4: invalid user key + * -3: could not get system key + * -4: could not get SCI data + * -5: no user key found in SCI data + * -6: invalid user key *****************************************************************************/ int drms_init( void *_p_drms, uint32_t i_type, uint8_t *p_info, uint32_t i_len ) @@ -363,9 +365,9 @@ int drms_init( void *_p_drms, uint32_t i_type, } else { - if( GetUserKey( p_drms, p_drms->p_key ) ) + i_ret = GetUserKey( p_drms, p_drms->p_key ); + if( i_ret ) { - i_ret = -3; break; } } @@ -379,7 +381,7 @@ int drms_init( void *_p_drms, uint32_t i_type, if( p_priv[ 0 ] != 0x6e757469 ) /* itun */ { - i_ret = -4; + i_ret = -6; break; } @@ -1638,9 +1640,9 @@ static int GetUserKey( void *_p_drms, uint32_t *p_user_key ) uint32_t *p_sci0, *p_sci1, *p_buffer; uint32_t p_sci_key[ 4 ]; char *psz_ipod; - int i_ret = -1; + int i_ret = -5; - if( !ReadUserKey( p_drms, p_user_key ) ) + if( ReadUserKey( p_drms, p_user_key ) == 0 ) { REVERSE( p_user_key, 4 ); return 0; @@ -1650,12 +1652,12 @@ static int GetUserKey( void *_p_drms, uint32_t *p_user_key ) if( GetSystemKey( p_sys_key, psz_ipod ? VLC_TRUE : VLC_FALSE ) ) { - return -1; + return -3; } if( GetSCIData( psz_ipod, &p_sci_data, &i_sci_size ) ) { - return -1; + return -4; } /* Phase 1: unscramble the SCI data using the system key and shuffle diff --git a/modules/demux/mp4/libmp4.c b/modules/demux/mp4/libmp4.c index b985f3deaa..6d4a2dafbf 100644 --- a/modules/demux/mp4/libmp4.c +++ b/modules/demux/mp4/libmp4.c @@ -2045,8 +2045,10 @@ static int MP4_ReadBox_drms( stream_t *p_stream, MP4_Box_t *p_box ) { case -1: psz_error = "unimplemented"; break; case -2: psz_error = "invalid argument"; break; - case -3: psz_error = "could not get user key"; break; - case -4: psz_error = "invalid user key"; break; + case -3: psz_error = "could not get system key"; break; + case -4: psz_error = "could not get SCI data"; break; + case -5: psz_error = "no user key found in SCI data"; break; + case -6: psz_error = "invalid user key"; break; default: psz_error = "unknown error"; break; } -- 2.39.2