Weird, seems it only raises an error for buffers which contain something other than 0 and it seg faults for non-buffers. 

```javascript
> key.public = buffertools.fill(new Buffer(65), 1);
Error: Invalid public key.
    at repl:1:12
    at REPLServer.self.eval (repl.js:110:21)
    at repl.js:249:20
    at REPLServer.self.eval (repl.js:122:7)
    at Interface.<anonymous> (repl.js:239:12)
    at Interface.EventEmitter.emit (events.js:95:17)
    at Interface._onLine (readline.js:202:10)
    at Interface._line (readline.js:531:8)
    at Interface._ttyWrite (readline.js:760:14)
    at ReadStream.onkeypress (readline.js:99:10)

> key.public = new Buffer('deadbeef', 'hex');
Error: Invalid public key.
    at repl:1:12
    at REPLServer.self.eval (repl.js:110:21)
    at repl.js:249:20
    at REPLServer.self.eval (repl.js:122:7)
    at Interface.<anonymous> (repl.js:239:12)
    at Interface.EventEmitter.emit (events.js:95:17)
    at Interface._onLine (readline.js:202:10)
    at Interface._line (readline.js:531:8)
    at Interface._ttyWrite (readline.js:760:14)
    at ReadStream.onkeypress (readline.js:99:10)

> key.public = 'oops, not a buffer';
[1]    56089 segmentation fault  node
```

Ideally it would probably be a good idea to wrap all the native calls with Javascript functions that do some type checking to ensure there won't be a segmentation fault.