@@ -34,7 +34,6 @@ struct Onion {
3434 guard let portValue = UInt16 ( port) else { throw MultiaddrError . invalidPortValue }
3535 guard portValue != 0 else { throw MultiaddrError . invalidPortValue }
3636
37- //base32DecodeToData(host)
3837 guard var onionData = try ? BaseEncoding . decode ( host, as: . base32) . data else {
3938 throw MultiaddrError . invalidOnionHostAddress
4039 }
@@ -48,12 +47,14 @@ struct Onion {
4847
4948 static func string( for data: Data ) throws -> String {
5049 guard data. count == 12 else { throw MultiaddrError . invalidOnionHostAddress }
50+
5151 let addressBytes = data. prefix ( 10 )
52+ let addressEncodedString = addressBytes. asString ( base: . base32) . lowercased ( )
53+
5254 let portBytes = data. suffix ( 2 )
55+ guard let port = portBytes. uint16 else { throw MultiaddrError . invalidPortValue }
56+ let portString = String ( port. bigEndian)
5357
54- //base32Encode(addressBytes).lowercased()
55- let addressEncodedString = addressBytes. asString ( base: . base32) . lowercased ( )
56- let portString = String ( portBytes. uint16. bigEndian)
5758 return " \( addressEncodedString) : \( portString) "
5859 }
5960}
@@ -73,7 +74,6 @@ struct Onion3 {
7374 guard let portValue = UInt16 ( port) else { throw MultiaddrError . invalidPortValue }
7475 guard portValue != 0 else { throw MultiaddrError . invalidPortValue }
7576
76- //base32DecodeToData(host)
7777 guard var onionData = try ? BaseEncoding . decode ( host, as: . base32) . data else {
7878 throw MultiaddrError . invalidOnionHostAddress
7979 }
@@ -88,11 +88,12 @@ struct Onion3 {
8888 static func string( for data: Data ) throws -> String {
8989 //guard data.count == 52 else { throw MultiaddrError.invalidOnionHostAddress }
9090 let portBytes = Data ( data. suffix ( 2 ) )
91- let addressBytes = Data ( data. dropLast ( 2 ) )
91+ guard let port = portBytes. uint16 else { throw MultiaddrError . invalidPortValue }
92+ let portString = String ( port. bigEndian)
9293
93- //base32Encode( addressBytes).lowercased( )
94+ let addressBytes = Data ( data . dropLast ( 2 ) )
9495 let addressEncodedString = addressBytes. asString ( base: . base32) . lowercased ( )
95- let portString = String ( portBytes . uint16 . bigEndian )
96+
9697 return " \( addressEncodedString) : \( portString) "
9798 }
9899}
0 commit comments