Canonical Encoding Rules (CER) are a subset of the Basic Encoding Rules. They eliminate some of the additional flexibility provided by BER.
All valid CER encodings are valid BER encodings. Whereas BER allows multiple ways to encode most values, in CER only a single one of those ways is allowed for a given value (e.g., in BER, a BOOLEAN a value of 00 is FALSE and any non-zero value is TRUE, while in CER, 00 is FALSE and FF is TRUE, and values 01-FE are false).
CER is similar to DER in most ways. The major differences are as follows:
Age ::= INTEGER (0..7) firstGrade Age ::= 6 -- 02 01 06