Per the terms of the Mozilla Public License, version 1.1, this file contains
a summary of the changes made by Apple Computer ("Apple") to source code
originally developed by Netscape.

General Notes
-------------

1. This module, SecurityNssAsn1, is based on the Netscape Security
   Services ("NSS") portion of the Mozilla Browser project. The 
   source upon which SecurityNssAsn1 was based was pulled from 
   the Mozilla CVS repository, top of tree as of January 21, 2003. 
   The SecurityNssAsn1 project contains only those portions of NSS 
   used to perform BER encoding and decoding, along with minimal 
   support required by the encode/decode routines. 

2. The directory structure of SecurityNssAsn1 differs significantly
   from that of NSS, rendering simple diffs to document changes
   unwieldy. Diffs could still be performed on a file-by-file basis.
   
3. All Apple changes are flagged by the symbol __APPLE__, either
   via "#ifdef __APPLE__" or in a comment. 
   

Changes
-------

1. Basic platform-specific support is in nsprPub/Source/nsprPortX.c.
   This support is specific to Mac OS X.
   
2. The fundamental data wrapper, SECItem, has been typedef'd to a
   CSSM_DATA. This provides interoperability between the code in
   this module with the code in the Apple Security framework.
   
3. Indication of signed integer types has moved from the 
   source/destination of encoding/decoding (SecItem.type) to a flag
   in the template defining encoding/decoding rules 
   (SEC_ASN1_SIGNED_INT in SEC_ASN1Template.kind). The default
   for ASN1 integer types, when this flag is not set, is unsigned. 
   
4. The dynamic template resolution mechanism has been updated to 
   provide the template chooser routine specific access to the 
   SECItem being encoded to or decoded from. This faciliates
   efficient inline processing of many ASN_ANY and CHOICE types. 
  
5. The source of the core secasn1e.c and secasn1d.c files has been 
   reformatted to be legible with 4-space tabs. Contrary to the 
   comments at the top of these files, these files were actually 
   formatted for 8-space tabs. 
   
6. Templates for encoding/decoding of fundamental ASN types was moved
   from secasn1d.c to a new file, asn1Templates.c. All other 
   templates in the SecurityNssAsn1 source were written by Apple.
   
