diff options
Diffstat (limited to 'src/math/bigint/big_io.cpp')
-rw-r--r-- | src/math/bigint/big_io.cpp | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/src/math/bigint/big_io.cpp b/src/math/bigint/big_io.cpp deleted file mode 100644 index b561c218f..000000000 --- a/src/math/bigint/big_io.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -* BigInt Input/Output -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include <botan/bigint.h> -#include <iostream> - -namespace Botan { - -/* -* Write the BigInt into a stream -*/ -std::ostream& operator<<(std::ostream& stream, const BigInt& n) - { - BigInt::Base base = BigInt::Decimal; - if(stream.flags() & std::ios::hex) - base = BigInt::Hexadecimal; - else if(stream.flags() & std::ios::oct) - throw std::runtime_error("Octal output of BigInt not supported"); - - if(n == 0) - stream.write("0", 1); - else - { - if(n < 0) - stream.write("-", 1); - const std::vector<byte> buffer = BigInt::encode(n, base); - size_t skip = 0; - while(skip < buffer.size() && buffer[skip] == '0') - ++skip; - stream.write(reinterpret_cast<const char*>(&buffer[0]) + skip, - buffer.size() - skip); - } - if(!stream.good()) - throw Stream_IO_Error("BigInt output operator has failed"); - return stream; - } - -/* -* Read the BigInt from a stream -*/ -std::istream& operator>>(std::istream& stream, BigInt& n) - { - std::string str; - std::getline(stream, str); - if(stream.bad() || (stream.fail() && !stream.eof())) - throw Stream_IO_Error("BigInt input operator has failed"); - n = BigInt(str); - return stream; - } - -} |