ECMA-48 (Fifth Edition, 1991) section 8.3.94 (page 53, PDF page 67) defines "PM - PRIVACY MESSAGE" as:
PM is used as the opening delimiter of a control string for privacy message use. The command string following may consist of a sequence of bit combinations in the range 00/08 to 00/13 and 02/00 to 07/14. The control string is closed by the terminating delimiter STRING TERMINATOR (ST). The interpretation of the command string depends on the relevant privacy discipline.
But, what is a "privacy discipline"? My guess is that it means message encryption, and hence PM was intended to convey messages used to negotiate the use of encryption – conceptually similar to the Telnet Encryption Option (RFC2946), SASL (RFC4422), etc. Is my guess correct?
I found another source Summary of ANSI standards for ASCII terminals by Joe Smith, dated 18 May 1984, which says:
============================================================================== C1 set of 8-bit control characters (from ANSI X3.64-1979) Oct Hex Name * (* marks function used in DEC VT series or LA series terminals) --- -- - --- - -------------------------------------------------------------- ... 220 90 P DCS * Device Control String, terminated by ST (VT125 enters graphics) ... 234 9C \ ST * String Terminator (VT125 exits graphics) 235 9D ] OSC Operating System Command (reprograms intelligent terminal) 236 9E ^ PM Privacy Message (password verification), terminated by ST 237 9F _ APC Application Program Command (to word processor), term by ST
Which suggest PM may actually have something to do with passwords?
I found a copy of ANSI X3.64-1979 (republished as FIPS 86), which has this to say about PM (page 44, PDF page 46):
The interpretation of the privacy message is subject to the individual privacy and security methods in effect. Applications utilizing the Privacy Message delimiter will most often have some graphic representation for PM.
The last sentence is rather intriguing, although then I realise it says the same thing about OSC, APC and ST – all it seems to mean is that although OSC/APC/PM are not directly displayed to the user, developers should separately provide some visual indication that one has been sent.
And did anyone ever actually use it? All the other "string" C1 controls have been used by systems over the years, even if infrequently:
- OSC (OPERATING SYSTEM COMMAND) is supported by xterm to set window title, change palettes, etc. Various other terminal emulators have supported it for this and other purposes. The iRMX operating system supports using it to modify the configuration of its terminal driver.
- APC (APPLICATION PROGRAM COMMAND) is used by some Kermit implementations to embed Kermit commands, and has also seen various other uses
- DCS (DEVICE CONTROL STRING) was used by physical terminals, such as DEC VT series, to remotely modify the terminal configuration – for example, by loading software fonts. It was also used to embed Sixel and ReGIS graphics.
- SOS (START OF STRING) is used by MARC 21 (a standard for exchanging library catalogue data), to mark characters within a field which should be ignored when sorting records by that field
But I can't find any references to any system ever using PM sequences. Did anybody?