Michael Ströder wrote:
Pierangelo Masarati wrote:
I've developed a module that implements support for the syntax of "codice fiscale", the personal identification code used by the Italian government to uniquely identify citizen.
Well, we currently get such a number in Germany too.
I think it might be of general use, although possibly limited to Italian users, so I'd like to give it a somewhat official and unbiased OID, rather than one under my arc or SysNet's. Would it qualify as general enough for OpenLDAP's OID arc, at least while experimental?
Well, when assigning OIDs there are two options:
- the pragmatic approach: Use any OID arc you want since no-one ever
cares. This seems to be the most common approach and works within a reasonable time-frame. Even OID arcs (enterprise IDs) looking very "official" seem to be assigned with this approach.
- the "official" approach: Try to convince an official numbering
authority to do the job. In your case that would the relevant Italian government agency or the central Italian bank. Be prepared for either being totally ignored or involved into really bizarre discussions. Also be prepared to wait at least two years for it. (Do you know the movie "Brazil"?)
I don't see why an OpenLDAP OID should look somewhat "more official" than any other OID arc. Just my two EUR cent. ;-)
Let's say more "neutral". I'm considering using a temporary OID from the experimental arc. For the rest, who knows?
I believe the need for a dedicated syntax (as opposed to IA5string, printableString or so) is that its definition, although flawed, needs to conform to quite a few restrictions, and a syntax that allows to detect trivial errors and single out impossible values would be definitely helpful.
Is there kind of a checksum digit?
Yes, but the whole design is flawed (in fact, the government seems to be considering the opportunity of changing it to something more reliable; I expect significant bureaucratic simplifications from this ;)
An OID arc would be best, because the kit consists in:
- a syntax
- an equality matching rule (cfMatch)
- an attribute spec (cf)
- an auxiliary objectClass spec (cfObject)
Why do you need a matching rule?
Well, you're probably right: given the syntax specification, after validation a simple octet string match suffices.
Is there a required normalization step like stripping white spaces before comparing it? (Frankly I'm not eager diving into the specification of this number though.)
Nobody would :)
I could imagine a more general matching rule useful which strips spaces and then conducts numericStringMatch, caseIgnoreIA5Match etc.
Also I'd prefer a naming prefix slightly more verbose than 'cf' and reflecting the use for Italy. Maybe something like 'itcodefisc' or similar?
Thanks for the suggestions. I'll take them into account.
p.
Ing. Pierangelo Masarati OpenLDAP Core Team
SysNet s.r.l. via Dossi, 8 - 27100 Pavia - ITALIA http://www.sys-net.it ----------------------------------- Office: +39 02 23998309 Mobile: +39 333 4963172 Fax: +39 0382 476497 Email: ando@sys-net.it -----------------------------------