sealed trait Cipher extends Transform
Instances of the Cipher class are used to encrypt data. The class can be used in one of two ways:
- As a stream that is both readable and writable, where plain unencrypted data is written to produce encrypted data on the readable side, or
- Using the cipher.update() and cipher.final() methods to produce the encrypted data.
The crypto.createCipher() or crypto.createCipheriv() methods are used to create Cipher instances. Cipher objects are not to be created directly using the new keyword.
- Annotations
- @RawJSType() @native()
- Alphabetic
- By Inheritance
- Cipher
- Transform
- ITransform
- IDuplex
- IWritable
- IReadable
- LegacyStream
- IEventEmitter
- Object
- Any
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def addListener(eventName: String, listener: Function): Cipher.this.type
Alias for emitter.on(eventName, listener).
Alias for emitter.on(eventName, listener).
- Definition Classes
- IEventEmitter
emitter.addListener(eventName, listener)
- See also
on()
Example: - final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- def cork(): Unit
Forces buffering of all writes.
Forces buffering of all writes. Buffered data will be flushed either at stream.uncork() or at stream.end() call.
- Definition Classes
- IWritable
writable.cork()
Example: - def destroy(error: Error = js.native): Unit
- Definition Classes
- IWritable
- def destroyed: Boolean
- val domain: String
- Definition Classes
- IEventEmitter
- def emit(name: String, args: Any*): Boolean
Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.
Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.
Returns true if the event had listeners, false otherwise.
- name
the event name
- args
the event arguments
- Definition Classes
- IEventEmitter
emitter.emit(name[, arg1][, arg2][, ...])
Example: - def end(callback: Function1[Error, Any] = js.native): UndefOr[Cipher.this.type]
- Definition Classes
- IWritable
- def end(chunk: String, encoding: String): UndefOr[Cipher.this.type]
- Definition Classes
- IWritable
- def end(chunk: String, encoding: String, callback: Function1[Error, Any]): UndefOr[Cipher.this.type]
- Definition Classes
- IWritable
- def end(chunk: |[String, Uint8Array]): UndefOr[Cipher.this.type]
- Definition Classes
- IWritable
- def end(chunk: |[String, Uint8Array], callback: Function1[Error, Any]): UndefOr[Cipher.this.type]
- Definition Classes
- IWritable
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def eventNames(): Array[String]
- Definition Classes
- IEventEmitter
- def final(): Buffer
Returns any remaining enciphered contents.
Returns any remaining enciphered contents. If output_encoding parameter is one of 'binary', 'base64' or 'hex', a string is returned. If an output_encoding is not provided, a Buffer is returned.
Once the cipher.final() method has been called, the Cipher object can no longer be used to encrypt data. Attempts to call cipher.final() more than once will result in an error being thrown.
cipher.final([output_encoding])
Example: - def final(outputEncoding: String): String
Returns any remaining enciphered contents.
Returns any remaining enciphered contents. If output_encoding parameter is one of 'binary', 'base64' or 'hex', a string is returned. If an output_encoding is not provided, a Buffer is returned.
Once the cipher.final() method has been called, the Cipher object can no longer be used to encrypt data. Attempts to call cipher.final() more than once will result in an error being thrown.
cipher.final([output_encoding])
Example: - def getAuthTag(): Buffer
When using an authenticated encryption mode (only GCM is currently supported), the cipher.getAuthTag() method returns a Buffer containing the authentication tag that has been computed from the given data.
When using an authenticated encryption mode (only GCM is currently supported), the cipher.getAuthTag() method returns a Buffer containing the authentication tag that has been computed from the given data.
The cipher.getAuthTag() method should only be called after encryption has been completed using the cipher.final() method.
cipher.getAuthTag()
Example: - final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def getMaxListeners(): Int
Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to EventEmitter.defaultMaxListeners.
Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to EventEmitter.defaultMaxListeners.
- Definition Classes
- IEventEmitter
emitter.getMaxListeners()
- See also
setMaxListeners()
Example: - def hasOwnProperty(v: String): Boolean
- Definition Classes
- Object
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isPaused(): Boolean
This method returns whether or not the readable has been explicitly paused by client code (using stream.pause() without a corresponding stream.resume()).
This method returns whether or not the readable has been explicitly paused by client code (using stream.pause() without a corresponding stream.resume()).
- Definition Classes
- IReadable
readable.isPaused()
Example: - def isPrototypeOf(v: Object): Boolean
- Definition Classes
- Object
- def listenerCount(eventName: String): Int
Returns the number of listeners listening to the event named eventName.
Returns the number of listeners listening to the event named eventName.
- Definition Classes
- IEventEmitter
emitter.listenerCount(eventName)
Example: - def listeners(eventName: String): Array[Function]
Returns a copy of the array of listeners for the event named eventName.
Returns a copy of the array of listeners for the event named eventName.
- Definition Classes
- IEventEmitter
emitter.listeners(eventName)
Example: - final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def on(eventName: String, listener: Function): Cipher.this.type
Adds the listener function to the end of the listeners array for the event named eventName.
Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.
Returns a reference to the EventEmitter so calls can be chained.
- Definition Classes
- IEventEmitter
emitter.on(eventName, listener)
Example: - def once(eventName: String, listener: Function): Cipher.this.type
Adds a one time listener function for the event named eventName.
Adds a one time listener function for the event named eventName. This listener is invoked only the next time eventName is triggered, after which it is removed.
- Definition Classes
- IEventEmitter
emitter.once(eventName, listener)
Example: - def pause(): Cipher.this.type
This method will cause a stream in flowing mode to stop emitting 'data' events, switching out of flowing mode.
This method will cause a stream in flowing mode to stop emitting 'data' events, switching out of flowing mode. Any data that becomes available will remain in the internal buffer.
- Definition Classes
- IReadable
readable.pause()
Example: - def pipe(destination: IWritable, options: ReadablePipeOptions = js.native): Cipher.this.type
This method pulls all the data out of a readable stream, and writes it to the supplied destination, automatically managing the flow so that the destination is not overwhelmed by a fast readable stream.
This method pulls all the data out of a readable stream, and writes it to the supplied destination, automatically managing the flow so that the destination is not overwhelmed by a fast readable stream. Multiple destinations can be piped to safely.
- Definition Classes
- IReadable
readable.pipe(destination[, options])
Example: - def prependListener(eventName: String, listener: Function): Cipher.this.type
- Definition Classes
- IEventEmitter
- def prependOnceListener(eventName: String, listener: Function): Cipher.this.type
- Definition Classes
- IEventEmitter
- def propertyIsEnumerable(v: String): Boolean
- Definition Classes
- Object
- def push(chunk: Uint8Array): Boolean
When chunk is a Buffer or string, the chunk of data will be added to the internal queue for users of the stream to consume.
When chunk is a Buffer or string, the chunk of data will be added to the internal queue for users of the stream to consume. Passing chunk as null signals the end of the stream (EOF), after which no more data can be written.
When the Readable is operating in paused mode, the data added with readable.push() can be read out by calling the readable.read() method when the 'readable' event is emitted.
When the Readable is operating in flowing mode, the data added with readable.push() will be delivered by emitting a 'data' event.
- chunk
the chunk of data to push into the read queue
- returns
true if additional chunks of data may continued to be pushed; false otherwise.
- Definition Classes
- IReadable
- def push(chunk: String, encoding: String = js.native): Boolean
When chunk is a Buffer or string, the chunk of data will be added to the internal queue for users of the stream to consume.
When chunk is a Buffer or string, the chunk of data will be added to the internal queue for users of the stream to consume. Passing chunk as null signals the end of the stream (EOF), after which no more data can be written.
When the Readable is operating in paused mode, the data added with readable.push() can be read out by calling the readable.read() method when the 'readable' event is emitted.
When the Readable is operating in flowing mode, the data added with readable.push() will be delivered by emitting a 'data' event.
- chunk
the chunk of data to push into the read queue
- encoding
the encoding of String chunks. Must be a valid Buffer encoding, such as 'utf8' or 'ascii'
- returns
true if additional chunks of data may continued to be pushed; false otherwise.
- Definition Classes
- IReadable
- def readAsBuffer(size: Int = js.native): Buffer
- Definition Classes
- IReadable
- Annotations
- @JSName("read")
- def readAsObject(size: Int = js.native): Any
- Definition Classes
- IReadable
- Annotations
- @JSName("read")
- def readAsString(size: Int = js.native): String
- Definition Classes
- IReadable
- Annotations
- @JSName("read")
- def removeAllListeners(eventName: String = js.native): Cipher.this.type
Removes all listeners, or those of the specified eventName.
Removes all listeners, or those of the specified eventName.
Note that it is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).
Returns a reference to the EventEmitter so calls can be chained.
- Definition Classes
- IEventEmitter
emitter.removeAllListeners([eventName])
Example: - def removeListener(eventName: String, listener: Function): Cipher.this.type
Removes the specified listener from the listener array for the event named eventName.
Removes the specified listener from the listener array for the event named eventName. removeListener will remove, at most, one instance of a listener from the listener array. If any single listener has been added multiple times to the listener array for the specified eventName, then removeListener must be called multiple times to remove each instance.
Note that once an event has been emitted, all listeners attached to it at the time of emitting will be called in order. This implies that any removeListener() or removeAllListeners() calls after emitting and before the last listener finishes execution will not remove them from emit() in progress. Subsequent events will behave as expected.
- Definition Classes
- IEventEmitter
emitter.removeListener(eventName, listener)
Example: - def resume(): Cipher.this.type
This method will cause the readable stream to resume emitting 'data' events.
This method will cause the readable stream to resume emitting 'data' events. This method will switch the stream into flowing mode. If you do not want to consume the data from a stream, but you do want to get to its 'end' event, you can call stream.resume() to open the flow of data.
- Definition Classes
- IReadable
readable.resume()
Example: - def setAAD(buffer: Buffer, options: SetAADOptions = js.native): Cipher
When using an authenticated encryption mode (only GCM is currently supported), the cipher.setAAD() method sets the value used for the additional authenticated data (AAD) input parameter.
When using an authenticated encryption mode (only GCM is currently supported), the cipher.setAAD() method sets the value used for the additional authenticated data (AAD) input parameter.
cipher.setAAD(buffer)
Example: - def setAutoPadding(auto_padding: Boolean = js.native): Cipher
When using block encryption algorithms, the Cipher class will automatically add padding to the input data to the appropriate block size.
When using block encryption algorithms, the Cipher class will automatically add padding to the input data to the appropriate block size. To disable the default padding call cipher.setAutoPadding(false).
When auto_padding is false, the length of the entire input data must be a multiple of the cipher's block size or cipher.final() will throw an Error. Disabling automatic padding is useful for non-standard padding, for instance using 0x0 instead of PKCS padding.
The cipher.setAutoPadding() method must be called before cipher.final().
cipher.setAutoPadding(auto_padding=true)
Example: - def setDefaultEncoding(encoding: String): Cipher.this.type
Sets the default encoding for a writable stream.
Sets the default encoding for a writable stream.
- Definition Classes
- IWritable
writable.setDefaultEncoding(encoding)
Example: - def setEncoding(encoding: String): Cipher.this.type
Call this function to cause the stream to return strings of the specified encoding instead of Buffer objects.
Call this function to cause the stream to return strings of the specified encoding instead of Buffer objects. For example, if you do readable.setEncoding('utf8'), then the output data will be interpreted as UTF-8 data, and returned as strings. If you do readable.setEncoding('hex'), then the data will be encoded in hexadecimal string format.
This properly handles multi-byte characters that would otherwise be potentially mangled if you simply pulled the Buffers directly and called buf.toString(encoding) on them. If you want to read the data as strings, always use this method.
Also you can disable any encoding at all with readable.setEncoding(null). This approach is very useful if you deal with binary data or with large multi-byte strings spread out over multiple chunks.
- Definition Classes
- IReadable
readable.setEncoding(encoding)
Example: - def setMaxListeners(n: Int): Cipher.this.type
By default EventEmitters will print a warning if more than 10 listeners are added for a particular event.
By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. Obviously, not all events should be limited to just 10 listeners. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) for to indicate an unlimited number of listeners.
Returns a reference to the EventEmitter so calls can be chained.
- Definition Classes
- IEventEmitter
emitter.setMaxListeners(n)
Example: - final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toLocaleString(): String
- Definition Classes
- Object
- def toString(): String
- Definition Classes
- AnyRef → Any
- def uncork(): Unit
Flush all data, buffered since stream.cork() call.
Flush all data, buffered since stream.cork() call.
- Definition Classes
- IWritable
writable.uncork()
Example: - def unpipe(destination: IWritable = js.native): Unit
This method will remove the hooks set up for a previous stream.pipe() call.
This method will remove the hooks set up for a previous stream.pipe() call.
If the destination is not specified, then all pipes are removed.
If the destination is specified, but no pipe is set up for it, then this is a no-op.
- Definition Classes
- IReadable
readable.unpipe([destination])
Example: - def unshift(chunk: |[String, Uint8Array]): Unit
This is useful in certain cases where a stream is being consumed by a parser, which needs to "un-consume" some data that it has optimistically pulled out of the source, so that the stream can be passed on to some other party.
This is useful in certain cases where a stream is being consumed by a parser, which needs to "un-consume" some data that it has optimistically pulled out of the source, so that the stream can be passed on to some other party.
Note that stream.unshift(chunk) cannot be called after the 'end' event has been triggered; a runtime error will be raised.
If you find that you must often call stream.unshift(chunk) in your programs, consider implementing a Transform stream instead.
- Definition Classes
- IReadable
readable.unshift(chunk)
Example: - def update(data: BufferLike): Buffer
- def update(data: String, inputEncoding: String): Buffer
- def update(data: String, inputEncoding: String, outputEncoding: String): String
Updates the cipher with data.
Updates the cipher with data. If the input_encoding argument is given, it's value must be one of 'utf8', 'ascii', or 'binary' and the data argument is a string using the specified encoding. If the input_encoding argument is not given, data must be a Buffer. If data is a Buffer then input_encoding is ignored.
The output_encoding specifies the output format of the enciphered data, and can be 'binary', 'base64' or 'hex'. If the output_encoding is specified, a string using the specified encoding is returned. If no output_encoding is provided, a Buffer is returned.
The cipher.update() method can be called multiple times with new data until cipher.final() is called. Calling cipher.update() after cipher.final() will result in an error being thrown.
cipher.update(data[, input_encoding][, output_encoding])
Example: - val usingDomains: Boolean
- Definition Classes
- IEventEmitter
- def valueOf(): Any
- Definition Classes
- Object
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- def wrap(stream: LegacyStream): Unit
Versions of Node.js prior to v0.10 had streams that did not implement the entire Streams API as it is today.
Versions of Node.js prior to v0.10 had streams that did not implement the entire Streams API as it is today. (See Compatibility for more information.)
If you are using an older Node.js library that emits 'data' events and has a stream.pause() method that is advisory only, then you can use the wrap() method to create a Readable stream that uses the old stream as its data source.
You will very rarely ever need to call this function, but it exists as a convenience for interacting with old Node.js programs and libraries.
- Definition Classes
- IReadable
readable.wrap(stream)
Example: - def write(chunk: String, encoding: String, callback: Function1[Error, Any]): Boolean
- Definition Classes
- IWritable
- def write(chunk: String, encoding: String): Boolean
- Definition Classes
- IWritable
- def write(chunk: |[Uint8Array, String], callback: Function1[Error, Any] = js.native): Boolean
- Definition Classes
- IWritable