Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117752790
enigma_subkey.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
3 KB
Referenced Files
None
Subscribers
None
enigma_subkey.php
View Options
<?php
/**
+-------------------------------------------------------------------------+
| SubKey class for the Enigma Plugin |
| |
| Copyright (C) The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
+-------------------------------------------------------------------------+
| Author: Aleksander Machniak <alec@alec.pl> |
+-------------------------------------------------------------------------+
*/
class
enigma_subkey
{
public
$id
;
public
$fingerprint
;
public
$expires
;
public
$created
;
public
$revoked
;
public
$has_private
;
public
$algorithm
;
public
$length
;
public
$usage
;
/**
* Converts internal ID to short ID
* Crypt_GPG uses internal, but e.g. Thunderbird's Enigmail displays short ID
*
* @return string Key ID
*/
function
get_short_id
()
{
// E.g. 04622F2089E037A5 => 89E037A5
return
enigma_key
::
format_id
(
$this
->
id
);
}
/**
* Getter for formatted fingerprint
*
* @return string Formatted fingerprint
*/
function
get_fingerprint
()
{
return
enigma_key
::
format_fingerprint
(
$this
->
fingerprint
);
}
/**
* Returns human-readable name of the key's algorithm
*
* @return string Algorithm name
*/
function
get_algorithm
()
{
// https://datatracker.ietf.org/doc/html/rfc4880#section-9.1
switch
(
$this
->
algorithm
)
{
case
1
:
case
2
:
case
3
:
return
'RSA'
;
case
16
:
case
20
:
return
'Elgamal'
;
case
17
:
return
'DSA'
;
case
18
:
return
'Elliptic Curve'
;
case
19
:
return
'ECDSA'
;
case
21
:
return
'Diffie-Hellman'
;
case
22
:
return
'EdDSA'
;
}
}
/**
* Checks if the subkey has expired
*
* @return bool
*/
function
is_expired
()
{
$now
=
new
DateTime
(
'now'
);
return
!
empty
(
$this
->
expires
)
&&
$this
->
expires
<
$now
;
}
/**
* Returns subkey creation date-time string
*
* @param bool $asInt Return the date as an integer
*
* @return string|null|int
*/
function
get_creation_date
(
$asInt
=
false
)
{
if
(
empty
(
$this
->
created
))
{
return
$asInt
?
0
:
null
;
}
if
(
$asInt
)
{
return
(
int
)
$this
->
created
->
format
(
'U'
);
}
$date_format
=
rcube
::
get_instance
()->
config
->
get
(
'date_format'
,
'Y-m-d'
);
return
$this
->
created
->
format
(
$date_format
);
}
/**
* Returns subkey expiration date-time string
*
* @return string|null
*/
function
get_expiration_date
()
{
if
(
empty
(
$this
->
expires
))
{
return
null
;
}
$date_format
=
rcube
::
get_instance
()->
config
->
get
(
'date_format'
,
'Y-m-d'
);
return
$this
->
expires
->
format
(
$date_format
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, Apr 4, 4:38 AM (5 h, 5 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18774474
Default Alt Text
enigma_subkey.php (3 KB)
Attached To
Mode
R113 roundcubemail
Attached
Detach File
Event Timeline