aboutsummaryrefslogtreecommitdiff
path: root/openssl/trunk/demos/tunala/ip.c
diff options
context:
space:
mode:
Diffstat (limited to 'openssl/trunk/demos/tunala/ip.c')
0 files changed, 0 insertions, 0 deletions
trn.net> 2008-06-12 02:49:41 +0000 Apparently Doxygen -does- read module documentation, but only if' href='/sra/rpki.net/commit/rpkid/rpki/roa.py?id=efd63e1b654fb9cd1092eefa2165686adc5452e8'>efd63e1b
5287fb1b
efd63e1b

5287fb1b

307e3c25


c64c03ac
b13d2545







c64c03ac
b13d2545
c64c03ac



b13d2545
c64c03ac


b13d2545
c64c03ac




8a30bbb3

c64c03ac
b13d2545

c64c03ac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
                                    

                                             
 
                                                                  
                                          
















                                                                           
                                                











                                                     
                                

                                    

                             


                      
 







                                                        
                                             
                                                              



                                             
                                     


                                                        
                                       




                                                                     

                                                                                                    
                         

                                                                     
                                                        
"""ROA (Route Origin Authorization).

At the moment this is just the ASN.1 encoder.

This corresponds to draft-ietf-sidr-roa-format, which is a work in
progress, so this may need updating later.

$Id$

Copyright (C) 2007--2008  American Registry for Internet Numbers ("ARIN")

Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND ARIN DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS.  IN NO EVENT SHALL ARIN BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.

draft-ietf-sidr-roa-format-03 2.1.3.2 specifies:

     RouteOriginAttestation ::= SEQUENCE {
        version [0] INTEGER DEFAULT 0,
        asID  ASID,
        ipAddrBlocks SEQUENCE OF ROAIPAddressFamily }

     ASID ::= INTEGER

     ROAIPAddressFamily ::= SEQUENCE {
        addressFamily OCTET STRING (SIZE (2..3)),
        addresses SEQUENCE OF ROAIPAddress }

     ROAIPAddress ::= SEQUENCE {
        address IPAddress,
        maxLength INTEGER OPTIONAL }

     IPAddress ::= BIT STRING
"""

from POW._der import *

class ROAIPAddress(Sequence):
  def __init__(self, optional=0, default=''):
    self.address = BitString()
    self.maxLength = Integer(1)
    contents = [ self.address, self.maxLength ]
    Sequence.__init__(self, contents, optional, default)

class ROAIPAddresses(SequenceOf):
  def __init__(self, optional=0, default=''):
    SequenceOf.__init__(self, ROAIPAddress, optional, default)

class ROAIPAddressFamily(Sequence):
  def __init__(self, optional=0, default=''):
    self.addressFamily = OctetString()
    self.addresses = ROAIPAddresses()
    contents = [ self.addressFamily, self.addresses ]
    Sequence.__init__(self, contents, optional, default)

class ROAIPAddressFamilies(SequenceOf):
  def __init__(self, optional=0, default=''):
    SequenceOf.__init__(self,  ROAIPAddressFamily, optional, default)
 
class RouteOriginAttestation(Sequence):
  def __init__(self, optional=0, default=''):
    self.version = Integer()
    self.explicitVersion = Explicit(CLASS_CONTEXT, FORM_CONSTRUCTED, 0, self.version, 0, 'oAMCAQA=')
    self.asID = Integer()
    self.ipAddrBlocks = ROAIPAddressFamilies()
    contents = [ self.explicitVersion, self.asID, self.ipAddrBlocks ]
    Sequence.__init__(self, contents, optional, default)