El Thursday 03 April 2008 08:03:37 Victor Pascual Ávila escribió:
A 'secure connection' in this context means that messages cannot be read by third parties, cannot be modified by third parties without detection and that B can be sure that the message really did come from A.
O sea, no vale interné XD
Fíjate que solo especifica requirements y NO se restringe al uso de un proto en concreto :-)
¡Cómo no! ¡¡¡cómo va el IETF a restringir/especificar algo en concreto!!! ¡para qué decir las cosas claramente pudiendo hablar en abstracto y que cada implementador interprete lo que le salga de los catapli***!
Ah claro claro, entiendo... no se mojan en decir "debe ser TLS o IPSEC" no sea que se dejen en el tintero algún protocolo capa 3 completamente deprecated tipo IPX. Dios mío ¡¡¡compatibilidad hacia atrás!!! ¿Para qué hacer la gramática ABNF de SIP sencilla y fácil de parsear si podemos basarla en gramáticas de hace 20 años como el HTTP y SMTP con todos sus fallos de diseño y eficiencia por ser megapermisivos sin corregir NI UNO SOLO!!
PD: ¿A que se nota que estoy haciendo un parser SIP y estoy to' quemao? XDDD
PPD: Gramática RFC3261 de la cabecera "Via" [1] convertida a RegExp: [1] http://www.tech-invite.com/Ti-sip-abnf-hf.html#Via
HDR_VIA = %r{(?:via|v)[\t\x20]*:(?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)? (?:sip|[!%'\x2a\x2b\x2d\x2e0-9_-z~]+) (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?/ (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?[!%'\x2a\x2b\x2d\x2e0-9_-z~]+ (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?/ (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)? (?:udp|tcp|tls|sctp|[!%'\x2a\x2b\x2d\x2e0-9_-z~]+) (?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+ (?:(?:(?:[0-9a-z]|[0-9a-z][\x2d0-9a-z]*[0-9a-z])\x2e)* (?:[a-z]|[a-z][\x2d0-9a-z]*[0-9a-z])\x2e?| \d{1,3}\x2e\d{1,3}\x2e\d{1,3}\x2e\d{1,3}| \x5b (?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*| [0-9a-f]{1,4}(?::[0-9a-f]{1,4})*:: (?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?| ::(?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?) (?::\d{1,3}\x2e\d{1,3}\x2e\d{1,3}\x2e\d{1,3})?\x5d) (?:(?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?: (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?\d+)? (?:(?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?; (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)? (?:ttl(?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?= (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?\d{1,3}| maddr(?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?= (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)? (?:(?:(?:[0-9a-z]|[0-9a-z][\x2d0-9a-z]*[0-9a-z])\x2e)* (?:[a-z]|[a-z][\x2d0-9a-z]*[0-9a-z])\x2e?| \d{1,3}\x2e\d{1,3}\x2e\d{1,3}\x2e\d{1,3}| \x5b (?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*| [0-9a-f]{1,4}(?::[0-9a-f]{1,4})*:: (?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?| ::(?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?) (?::\d{1,3}\x2e\d{1,3}\x2e\d{1,3}\x2e\d{1,3})?\x5d)| received(?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?= (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)? (?:\d{1,3}\x2e\d{1,3}\x2e\d{1,3}\x2e\d{1,3}| (?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*| [0-9a-f]{1,4}(?::[0-9a-f]{1,4})*:: (?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?| ::(?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?) (?::\d{1,3}\x2e\d{1,3}\x2e\d{1,3}\x2e\d{1,3})?)| branch(?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?= (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)? [!%'\x2a\x2b\x2d\x2e0-9_-z~]+| [!%'\x2a\x2b\x2d\x2e0-9_-z~]+ (?:(?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?= (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)? (?:[!%'\x2a\x2b\x2d\x2e0-9_-z~]+| (?:(?:[0-9a-z]|[0-9a-z][\x2d0-9a-z]*[0-9a-z])\x2e)* (?:[a-z]|[a-z][\x2d0-9a-z]*[0-9a-z])\x2e?| \d{1,3}\x2e\d{1,3}\x2e\d{1,3}\x2e\d{1,3}| \x5b (?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*| [0-9a-f]{1,4}(?::[0-9a-f]{1,4})*:: (?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?| ::(?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?) (?::\d{1,3}\x2e\d{1,3}\x2e\d{1,3}\x2e\d{1,3})?\x5d| (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?" (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+| [!\x23-@\x5b\x5d-~]| [\xc0-\xdf][\x80-\xbf]| [\xe0-\xef][\x80-\xbf]{2}| [\xf0-\xf7][\x80-\xbf]{3}| [\xf8-\xfb][\x80-\xbf]{4}| [\xfc\xfd][\x80-\xbf]{5}| [\x00-\t\v\f\x0e-@\x5b-\x7f])*"))?))* (?:(?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?, (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)? (?:sip|[!%'\x2a\x2b\x2d\x2e0-9_-z~]+) (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?/ (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?[!%'\x2a\x2b\x2d\x2e0-9_-z~]+ (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?/ (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)? (?:udp|tcp|tls|sctp|[!%'\x2a\x2b\x2d\x2e0-9_-z~]+) (?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+ (?:(?:(?:[0-9a-z]|[0-9a-z][\x2d0-9a-z]*[0-9a-z])\x2e)* (?:[a-z]|[a-z][\x2d0-9a-z]*[0-9a-z])\x2e?| \d{1,3}\x2e\d{1,3}\x2e\d{1,3}\x2e\d{1,3}| \x5b (?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*| [0-9a-f]{1,4}(?::[0-9a-f]{1,4})*:: (?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?| ::(?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?) (?::\d{1,3}\x2e\d{1,3}\x2e\d{1,3}\x2e\d{1,3})?\x5d) (?:(?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?: (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?\d+)? (?:(?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?; (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)? (?:ttl(?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?= (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?\d{1,3}| maddr(?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?= (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)? (?:(?:(?:[0-9a-z]|[0-9a-z][\x2d0-9a-z]*[0-9a-z])\x2e)* (?:[a-z]|[a-z][\x2d0-9a-z]*[0-9a-z])\x2e?| \d{1,3}\x2e\d{1,3}\x2e\d{1,3}\x2e\d{1,3}| \x5b (?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*| [0-9a-f]{1,4}(?::[0-9a-f]{1,4})*:: (?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?| ::(?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?) (?::\d{1,3}\x2e\d{1,3}\x2e\d{1,3}\x2e\d{1,3})?\x5d)| received(?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?= (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)? (?:\d{1,3}\x2e\d{1,3}\x2e\d{1,3}\x2e\d{1,3}| (?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*| [0-9a-f]{1,4}(?::[0-9a-f]{1,4})*:: (?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?| ::(?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?) (?::\d{1,3}\x2e\d{1,3}\x2e\d{1,3}\x2e\d{1,3})?)| branch(?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?= (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)? [!%'\x2a\x2b\x2d\x2e0-9_-z~]+| [!%'\x2a\x2b\x2d\x2e0-9_-z~]+ (?:(?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?= (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)? (?:[!%'\x2a\x2b\x2d\x2e0-9_-z~]+| (?:(?:[0-9a-z]|[0-9a-z][\x2d0-9a-z]*[0-9a-z])\x2e)* (?:[a-z]|[a-z][\x2d0-9a-z]*[0-9a-z])\x2e?| \d{1,3}\x2e\d{1,3}\x2e\d{1,3}\x2e\d{1,3}| \x5b (?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*| [0-9a-f]{1,4}(?::[0-9a-f]{1,4})*:: (?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?| ::(?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?) (?::\d{1,3}\x2e\d{1,3}\x2e\d{1,3}\x2e\d{1,3})?\x5d| (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+)?" (?:(?:[\t\x20]*(?:\r\n|\r\n))?[\t\x20]+| [!\x23-@\x5b\x5d-~]| [\xc0-\xdf][\x80-\xbf]| [\xe0-\xef][\x80-\xbf]{2}| [\xf0-\xf7][\x80-\xbf]{3}| [\xf8-\xfb][\x80-\xbf]{4}| [\xfc\xfd][\x80-\xbf]{5}| [\x00-\t\v\f\x0e-@\x5b-\x7f])*"))?))*)*}xi
Ala, senillita, eficiente y ligera. XDDD
Saludos.