MPEG4IP ISMACRYP README

September, 2005

This library, ismacryp, implements
the ISMA encryption and authentication protocol defined in "ISMA 1.0 Encryption
and Authentication, Version 1.0" specification which is published on the ISMA
web site. This specification is referred to as Ismacryp in the remainder of
this README.

Certain portions of the protocol are not implemented: selective
encryption which allows for the encryption of selected streaming packets and
alternating keys.

The ismacryp lib utilizes a separate library, srtplib, for
AES Integer Counter Mode encryption functions. The srtplib is not included in
the mpeg4ip distribution. However, the ismacryp library implemented here will
still operate correctly in the absence of the srtplib. All new mp4 atoms and
headers in the case of streamed files are included in an Ismacryp file but the
data will not be encrypted. The player will properly decode and play Ismacryp
files or streams that are created without the encryption functions provided by
srtplib.

To build and install mpeg4ip without srtplib, pass --disable-srtp to
configure or bootstrap.

To build and install mpeg4ip with srtplib, perform the
following steps.

   1. Obtain the libsrtp package version 1.3.22 or later from
the Sourceforge site (not available as of 2005/9/9).
   2. Configure libsrtp
with the generic option to remove srtp-specific limitations by changing the AES
ICM functions. Then build and install the srtplib libraries.
      % configure
--enable-generic
      % make
      % make install 

By default libsrtp will
install its libraries and header files in /usr/local/lib and
/usr/local/include/srtp respectively. mpeg4ip will look for both in
system-defined library and include paths. If it finds them it will
automatically include them in the build unless --disable-srtp is passed to
configure.

Prior to using Ismacryp functions, it necessary to provide a key
file. The key file must be named .kms_data and a sample is included in this
directory. This file must be placed in the home directory of the user running
the mpeg4ip application.

Using Ismacryp functions (see the other project
README files for more detailed information):

   1. To create an Ismacryp mp4
file: mp4creator -encrypt <filename>. A new file named <enc-filename> will be
created.
   2. To play an Ismacryp file locally: use mp4player or gmp4player in
the usual way.
   3. To stream an Ismacryp file: create hint tracks and use
mp4creator in the usual way.

Functions provided by ismacryplib are described
in ismacryp.h

alexv@cisco.com
will_clark@cisco.com

