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. 7. Updated the prcpucfg.h file to nspr-4.8.9 version. 8. Changed various integer types for variables and functions arguments to be 64 bits safe.